1
我在計算如何將函數加括號(當在某些部分的周圍添加括號以使意思更清晰時是合法的)時遇到了一些困難。SML:嚴格的加括號功能類型的方法
例如,foldl
被定義爲具有類型:現在
foldl : ('a * 'b -> 'b) -> b -> 'a list -> 'b
,如果我看foldl
的定義,我看到:在此基礎上
fun foldl g z [] = z
| foldl g z (x::L) = foldl g (g(x,z)) L;
,我通常只是精神上地圖g
至('a * 'b -> 'b)
,z
爲'b
類型,並且模式匹配處理類型'a list
的列表。最後,返回類型爲'b
。
不過,我想->
正確的同夥,所以說「OK,加括號像這樣開始不會是最自然的:
foldl : ('a * 'b -> 'b) -> 'b -> ('a list -> 'b)
有什麼不對這一思路/我是什麼誤解有關如何添加括號?