2017-02-16 1 views
2

F 초의 전체 초보자에게 도움이 필요합니다. 그래서 질문에 함수를 작성하라는 메시지가 표시됩니다. 따라서 downTo n이 n 요소 목록 [n; n-1; ...; 1] if-then-else를 사용하고 패턴 일치.F # int -> int리스트 재귀 함수

그래서이 나는 경우 - 당시 다른 부분에 대한 시도했습니다 무엇

let rec downTo n : int -> int list = 
    let list = [] 

    if n > 1 then 
     n :: list 
     downTo (n - 1) 
    else 
     list 

그래서 나는군요 '단위'이 표현 유형을 가져야한다 '라고 N : 목록에서 경고 'int list'유형이 있습니다. 목록 '나는 몇 가지 지침이 필요

를 - 등의 결과

과 마지막 줄에 오류가 폐기 무시하고 사용하십시오'를 입력했다 여기> INT 목록 그러나이 식을 int 형을하도록되어 '. 함수의 선언에서 첫 번째 질문은 그것이 n : int -> int list와 같은 방식이어야 하는가? 이 문제 문에서 같은

downTo : int -> int list 

를 읽도록 나는 N을 제거해야 하는가? 저는 수 일간 연구를 해왔으며 어디에서나 이런 선언을 보지 못했습니다. 나는 매우 혼란 스럽다. 사전에 도움을 주셔서 감사합니다.

답변

4

나는 당신이 어떤 목록인지 오해했다고 생각합니다. 또한 주석이 필요하지 않습니다.

간단한 버전

let rec downto n = 
    if n > 0 then n :: (downto n-1) else [] 
+0

감사합니다! 그래, 내가 많이 오해 한 것 같다. 도와 주셔서 감사합니다 – jynx678

+0

downto가 키워드이고 구문 오류가있어서 컴파일되지 않습니다. –