최근에 하스켈을 배우기 시작했고 지금 당장 수업을 시작했습니다. 피아노 (Phano) 번호 클래스를 구성하고이를 Num typeclass에 인스턴스화했습니다.하스켈 피아노 (Haskell Peano) 곱셈의 숫자와 게으름
강의 도중 교수님이 후계자 기능을 S x = x + 1
또는 S x = 1 + x
으로 보았는지 여부에 따라 곱셈 정의에 대한 적절한 후속 사례가 달라질 것이라고 내 교수는 주장했습니다. 각각 :
x * S y = x * y + x
x * S y = x + x * y
또한, 그는 그것이 lazier는하지만 문제가이 경우 어떻게보고하는 데 문제가 있기 때문에이 두 가지 선택의 첫 번째를 사용하는 것이 바람직하다 주장했다.
우리는x + y == z
을 평가하는 것이 훨씬 더 빨리 발생하지만 곱셈에 대한 유사한 사례를 찾을 수 없기 때문에
x + S y = S (x + y)
의 추가 정의가보다 나은
x + S y = S x + y
인의 예를 바라 보았다.
강의 노트 현재 위치 : http://cmsc-16100.cs.uchicago.edu/2014/Lectures/lecture-02.php
질문에 작은 오류가 많이있는 것 같습니다 – Carsten
곱셈의 정의가 후행 함수를 사용하지 않으므로 (첫 번째 질문은 무엇을해야할지 모르겠습니다. 'S'형식 생성자와 이 모든 다른 정의 할 수 없습니다) 나머지는 – Carsten
나는 당신이 준 링크에서 당신의 교수보다 더 잘할 수 없다고 말해야 만합니다 - 설명은 아주 좋습니다. IMHO - 어쩌면 당신은 이해할 수없는 부분을 복사 할 수 있습니다. 그들에 대해 이야기하십시오 – Carsten