하스켈 을 배우기 시작했습니다 . 나는 그것을 처음 접했고, 기본 구성을 둘러보기 위해 두 가지 온라인 책을 읽었습니다.
익숙한 사람들이 자주 이야기하는 'memes'중 하나는 "컴파일하면 작동합니다"라는 것입니다.
나는 이유를 이해하기 위해 노력하고있어 정확히 하스켈은이 점에서 다른 정적으로 입력 된 언어보다 낫다.
다른 방법으로 말하면, Java로 가정하면 ArrayList<String>()
실제로해야 할 것을 포함하기 위해 묻어 버리는 것과 같은 무서운 일을 할 수 있다고 가정
합니다 ArrayList<Animal>()
. 여기서 가장 중요한 것은 string
contains elephant, giraffe
등을 포함 하고 누군가가 넣은 경우 Mercedes
컴파일러가 도움이되지 않는다는 것입니다.
내가하면 한 할 ArrayList<Animal>()
내 프로그램이 차량에 관하여, 동물을 정말없는 결정하는 경우에, 시간에 어떤 나중에에서, 다음, 그때 나는, 말, 생성하는 기능을 변경할 수 있습니다 ArrayList<Animal>
생산을 ArrayList<Vehicle>
내 IDE가 사방 말해한다 컴파일 시간입니다.
내 가정은 이것이 사람들이 강력한 유형 시스템에 의해 의미하는 것이라고 가정 하지만 Haskell이 더 나은 이유는 분명하지 않습니다. 다른 방법으로, 당신은 좋은 또는 나쁜 자바를 작성할 수 있습니다, 나는 당신이 Haskell에서 똑같이 할 수 있다고 가정합니다 (즉, 실제로 일류 데이터 유형이어야하는 문자열 / 정수에 물건을 넣습니다).
중요한 / 기본적인 것이 빠진 것 같습니다.
나는 나의 길의 잘못을 보게되어 매우 기쁩니다!
Maybe
이 끝까지 언급되는지 모르겠다 . 더 인기있는 언어가 Haskell에서 빌려야 할 것 중 하나만 선택해야한다면 이것이 될 것입니다. 그것은 매우 간단한 아이디어이기 때문에 (이론적 관점에서 그리 흥미롭지는 않지만) 이것만으로도 우리의 일이 훨씬 쉬워집니다.