2017-02-16 7 views
2

Fのここまでの初心者の合計は、いくつかの助けが必要です。だから、質問には関数を書くと書かれているので、downTo nはn要素リスト[n;]を返します。 n-1; ...; 1] if-then-elseを使用してパターンマッチングを行います。F#int - > intリスト再帰関数

だからこれは私がされたif-then-else部分のために試したものです

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を使って、それが元の方法であるべきかどうかです。私はそれを読むためにnを削除する必要があります

downTo : int -> int list 

問題文のように? 私は何日も研究していますが、このような宣言はどこにも見ていません。私は非常に混乱しています。事前にあなたの助けをありがとう。

答えて

4

あなたはどのリストが間違っていると思いますか?また、アノテーションは必要ありません。

簡易版

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

ありがとうございました!うん、私は多く誤解されているようです。私はあなたの助けに感謝します – jynx678

+0

downtoはキーワードであり、構文エラーがあるので、これはコンパイルされません。 –

関連する問題