2014-03-03 2 views

답변

7

코드 재귀 (그 자체의 관점에서 정의된다)이다. 나는 @ leftroundabout의 생각에 대한 강조가 에 있다는 것을 믿습니다. 다음 슬라이드

do putY (y - x) 
    gcdST 

Recursive data definition 
* not recursive function call 
* like ones = 1 : ones 

것을 말한다 즉, gdcST이 함수가 아니기 때문에 재귀적인 함수 호출이 없습니다 (인수가 필요하지 않습니다!). 이는 재귀적인 데이터 정의입니다.

+0

새로운 "재귀 적 데이터 정의". 그러나 엄격한 것은 기능입니다. 그렇지 않습니까? 즉, 함수로 선언되고 매번 계산이 수행됩니다. –

+2

@ LayGonzález 아니요, 기능이 아닙니다. 아무런 논쟁도 없습니다. Haskell에서 값은 타입에'-> '가있는 경우에만 기능을합니다. 슬라이드가 말하는 것처럼 기능이 없기 때문에 "호출"이 없습니다. 'ones = 1 : ones'에서'ones'의 두 번째 발생은리스트를 생성하는 계산을 수행한다는 것과 동일한 의미로만 계산을 수행합니다. 그것은 가치있는 것으로 평가됩니다. –

+0

좋습니다! 지금은 분명합니다. 감사. –

관련 문제