2011-12-04 5 views
1

"새로운"피보나치 알고리즘을 시작하지만 작동하지 않습니다. 그것은 매우 간단합니다피보나치 haskell

--fiblista 0 n = [0] 
    --fiblista 1 n = [1] 
    fiblista a n 
     | a <= n = (0:1:tail, ((fiblista!!d)+(fiblista!!c))) fiblista a+1 n 
     where d = a - 1 
       c = a - 2 

예 :

http://dl.dropbox.com/u/27560194/example.png

첫 번째 오류 코드 : 입력을 구문 분석 오류 '='

어떤 생각 방법이 알고리즘을 해결하기 위해? 나는 haskell에서 피보나치 알고리즘 예제 1000을 읽었지만 새로운 것을 작성해야한다.

+0

접근 방법을 설명해 주시겠습니까? 여기에 구문과 유형 오류가 너무 많아서 어떻게 작동하는지 이해하는 데 어려움을 겪고 있습니다. – hammar

답변

4

들여 쓰기가 잘못되었습니다. 시도해보십시오 :

fiblista 0 n = [0] 
fiblista 1 n = [1] 
fiblista a n 
    | a < n = (tail, ((fiblista!!d)+(fiblista!!c))) fiblista a+1 n 
    where d = a - 1 
     c = a - 2 

하지만이 코드는 여전히 컴파일되지 않습니다. fiblista은 두 개의 매개 변수가있는 함수이지만 목록으로도 사용하려고합니다. 또한 튜플을 함수로 사용하려고합니다.

여전히 함수 작성이 어려우면 fiblista의 매개 변수와 반환 할 항목을 설명 할 수 있다면 도움이됩니다. 형식 서명을 포함하십시오.

이 숙제가 있습니까?


그래서.

fiblista a n번째 피보나치 수로 시작하고 ( N-1) 번째 피보나치 수 끝나는, 피보나치 수열의리스트이다.

이것은 목록 질문입니다.

Imagine you had a list of all the Fibonacci numbers. (이것은 fiblista 0 ∞과 같을 것입니다. 이 유효 하스켈 값이었던 경우) takedrop 표준 목록 함수를 사용하여 fiblista a n을 계산할 수 있습니다.

+0

대답을 주셔서 감사합니다. a는 피보나치 숫자를 의미하고, n은 마지막 피보나치 숫자이며, 함수는 피보나치 숫자가 n 인 목록을 반환해야합니다. 숙제가 아니라 자기 자신 만의 방식으로 해골을 배우는 것. 나의 이전 질문은 그렇지 않다는 숙제 문제입니다. – flatronka

+1

"마지막"피보나치 수는 무엇을 의미합니까? 출력 'fiblista'는'a'에 어떻게 의존합니까? 함수가 일반 입력에 정확하게 반환해야하는 내용을 정확하게 설명하십시오. – Prateek

+0

예 : http://dl.dropbox.com/u/27560194/example.png 제 생각입니다. – flatronka