피보나치 숫자를 생성하기 위해이 코드를 보았습니다.하스켈이 무한한 목록을 생성하는 방법?
fibs = 1:1:(zipWith (+) fibs (tail fibs))
유사한 스타일 코드가 무한리스트 생성하도록 기록 될 수있다 [1 ..]?
하스켈 사이트에서이 link on cyclic structures을 보았습니다.
는 예는이
cyclic = let x = 0 : y
y = 1 : x
in x
내가 순환 방식으로 내 문제에 대한 목록을 정의하려고
을 부여하고 있지만 성공하지 못했습니다. 내가 원하는 것은 자체적으로 정의 된 목록이며 Hasekll에서 [1 ..]로 평가되는 목록입니다.참고 : 하스켈 [1..]
은 [1,2,3,4,5...]
으로, [1,1,1...]
으로 평가되지는 않습니다.
'ones = 1 : ones' –
이것은 하스켈의'[1 ..]'과 같지 않습니다. Haskell'[1. ..]'은'[1,2,3,4,5 ...]'로 평가되고, 당신의 평가는'[1,1,1,1 ...]'입니다. –
아, 그래. 'nats = 1 :지도 (+1) nats'. –