0
왜 tycon 불일치 연산자가 있고 피연산자가 일치하지 않는 오류가 있습니까? 솔루션에 대한 제안?연산자와 피연산자의 형식이 일치하지 않는 이유는 무엇입니까?
왜 tycon 불일치 연산자가 있고 피연산자가 일치하지 않는 오류가 있습니까? 솔루션에 대한 제안?연산자와 피연산자의 형식이 일치하지 않는 이유는 무엇입니까?
문제는 기능 응용 프로그램이 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