2012-11-01 4 views

Antwort

21

Sie haben einen Raum zwischen dem Lambda und der Tilde

hinzufügen
\ ~(x,s) -> run (f x) s 

die Quelle der Verwirrung ist, weil \ und ~ beide gültige Zeichen für Benutzer definierten Operatoren sind so \~ als eine geparst wird statt als Beginn eines Lambda-Ausdruck geparst werden:

-- Defining a custom \~ operator is allowed: 
let a \~ b = {- ... -} 
+0

Nachdem ich viel mehr Zeit verschwendet habe, würde ich gerne die Lösung finden, während ich die ursprüngliche Version dieser Frage aufschreibe. Ich denke, es könnte jemand helfen, aber immer noch ... – hugomg

+12

Sie sollten die Erklärung hinzufügen, obwohl. Sowohl '' '' '' '' '' '' '' '' '' '' 'sind Symbole und können in Operatoren vorkommen. –