2012-10-04 5 views

답변

2

문제는 기능 응용 프로그램이 o보다 강력하게 바인딩된다는 점에 있습니다. 같다

, 그것을 해석 : explode x 이후

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

char 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 
관련 문제