簡體   English   中英

F#int-> int列表遞歸函數

[英]F# int -> int list recursive function

這里是F#的新手,需要一些幫助。 所以問題說寫一個函數

downTo : int -> int list

因此downTo n返回n元素列表[n; N-1; ...; 1]使用if-then-else然后進行模式匹配。

這就是我嘗試過的if-then-else部分的內容

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

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

因此,我在n :: list處收到一條警告,提示“此表達式應具有'unit'類型,但具有'int list'類型。 使用ignore丟棄結果等。

最后一行錯誤“此表達式應該具有int類型-> int列表,但此處具有類型“ a列表”

我需要一些指導。 第一個問題,在函數的聲明中,應該采用n:int-> int list的方式嗎? 我應該刪除n以便讀取

downTo : int -> int list

像問題陳述中那樣? 我已經嘗試研究了好幾天,並且在任何地方都沒有看到這樣的聲明。 我很困惑 提前謝謝你的幫助。

我認為您誤解了什么是清單。 另外,您不需要注釋。

一個簡單的版本

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM