2011-04-28 70 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