[英]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.