2011-04-28 73 views
0

let passFive f = (f 5)支架在F#(讓passFive F =(F 5))

let passFive f = f 5

什麼是它們之間的區別?

我發現他們都象下面這樣:

val passFive : (int -> 'a) -> 'a

+0

是什麼讓你覺得有區別? – Gabe 2011-04-28 05:14:26

+1

一個公平的問題不是?給定一個未知的語言,以及兩個不同的代碼摘錄,這兩個代碼都可以進行編譯,所以有必要詢問是否存在差異。 – DuckMaestro 2011-04-28 05:22:48

+0

@加貝:之前與Lisp的遭遇? ;-) – petebu 2011-04-28 11:03:48

回答

2

他們都是相同的,要組一起操作數和增加他們的優先級括號(括號內)在這裏被用來像其他地方。

printfn "%A" myfunc 5 

會給出錯誤。

printfn "%A" (myfunc 5) 

是應該如何寫的。

+0

像其他地方**在F#** ... – Benjol 2011-04-28 06:38:25

+0

@ Benjol:像90%的語言中的任何其他地方。 – delnan 2011-04-28 11:24:11

+0

@delnan,好的,點了。我在想的是F#括號中只有*用於優先級的事實,而在其他地方它們被用來爲方法/函數'打包'參數。有時候會讓人絆倒。 – Benjol 2011-04-28 12:03:59