2012-10-04 180 views

回答

2

問題在於,功能應用程序綁定強於o

也就是說,它被解釋爲:

fun reve x = implode o rev o (explode x); 

由於explode xchar list,而不是一個功能,這將失敗。

您可以將您的括號正確

fun reve x = (implode o rev o explode) x; 

或者在無點符號寫它解決這個問題:

val reve = implode o rev o explode 

也有可能定義一個右關聯功能應用運營商,通常稱爲$,它不需要括號就可以做你想要的:

(* Right-associative function application *) 
infixr $ 
fun f $ x = f x; 

fun reve x = implode o rev o explode $ x 
相關問題