簡體   English   中英

質數列表

[英]List of prime numbers

let liczby_pierw n x =
x = n || x % n <> 0

    let rec usuń listn listx =
        match listn with
        | głowa :: ogon ->  usuń ogon (List.filter (liczby_pierw głowa) listx)
        | [] -> listx
    
    let liczby_pierw1 n =
        let max = int (sqrt(float n)) 
        usuń [ 2 .. max ] [ 2.. n ]
    printfn "Liczby pierwsze od 2 do %d:\n %A" 100 (liczby_pierw1 100)

我不知道此時我們如何用一個參數調用 function | głowa:: ogon -> usuń ogon (List.filter (liczby_pierw głowa) listx),因為上面將 function 聲明為帶有兩個參數的 function。

我希望有人向我解釋這是如何工作的,為什么我們可以使用帶有一個參數的 function 調用。

這稱為部分 function 應用程序 當你有一個帶有多個參數的 function 時,你可以只用前幾個參數調用它,結果將是一個帶有其余參數的 function。

當你寫:

usuń ogon (List.filter (liczby_pierw głowa) listx)

它實際上與編寫相同:

usuń ogon (List.filter (fun x -> liczby_pierw głowa x) listx)

調用liczby_pierw głowa int -> bool 這是您需要傳遞給filter的 function 的類型,因此您可以在沒有顯式fun的情況下執行此操作。

暫無
暫無

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

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