Tipps zum Golfen in OCaml


9

Inspiriert von der Auswahl anderer 'Tipps zum Golfen in der Sprache xyz'. Bitte schlagen Sie wie gewohnt nur Tipps vor, die spezifisch für OCaml sind und nicht generell programmieren. Ein Tipp pro Antwort bitte.


1
Stört es Sie, wenn ich ein paar offensichtliche Tipps hinzufüge?
Édouard

Antworten:


3

Verwenden Sie Funktionen anstelle von Übereinstimmungen

let rec f=function[]->0|_::t->1+f t

ist kürzer als

let rec f x=match x with[]->0|_::t->1+f t

2

Verwenden Sie niemals begin […] end

Diese:

begin […] end 

ist immer gleichbedeutend damit:

([…])

1

Definieren Sie mehrere Variablen oder Funktionen gleichzeitig

Dank Tupeln können Sie mehrere Variablen gleichzeitig definieren. Und da Funktionen erstklassige Bürger sind…:

let f,g=(fun x->x+1),fun x->2*x

Sie können jedoch nicht schreiben:

let f,g=(fun x->x+1),fun x->2*f x

Fehler: Ungebundener Wert f

Leider können Sie das Problem nicht vermeiden, indem Sie Folgendes verwenden rec:

let rec f,g=(fun x->x+1),fun x->2*f x

Fehler: Nur Variablen sind als linke Seite von zulässig let rec


1

Exploit curryied Funktionen

Funktionen in OCaml sind curryied. Es kann manchmal nützlich sein, diese Tatsache auszunutzen.

let n y=f x y

kann geschrieben werden

let n=f x

Wenn Sie arithmetische Operationen benötigen, können Sie diese mit Klammern umgeben, damit sie sich wie Standard-Präfixfunktionen verhalten. (+), (-), ...

let n=(+)1;;
n 3;;

- : int = 4

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.