Whitespace drücken
Kennen Sie die Regeln für Leerzeichen in Ihrer Sprache. Einige Satzzeichen oder andere Zeichen benötigen möglicherweise kein umgebendes Leerzeichen. Betrachten Sie diese Bourne-Shell- Funktion:
f () { echo a; echo b; }
In der Bourne-Shell ();
sind Metazeichen und benötigen keine umgebenden Leerzeichen. Es handelt sich jedoch {}
um Wörter, die Leerzeichen benötigen, sofern sie nicht neben Metazeichen stehen. Wir können 4 Felder daneben weggolfen ();
, müssen aber den Abstand zwischen {
und einhalten echo
.
f(){ echo a;echo b;}
In Common Lisp und PicoLisp , ()
sind Metazeichen. Betrachten Sie diesen Code, um den Durchschnitt von zwei Zahlen zu ermitteln:
(/ (+ a b) 2)
Wir können 2 Plätze weg Golf spielen.
(/(+ a b)2)
Einige Sprachen haben seltsame und subtile Regeln für Leerzeichen. Betrachten Sie dieses Ruby-Programm, das die Summe und das Produkt einer Reihe von ganzen Zahlen ausgibt.
#!ruby -an
i=$F.map &:to_i
puts"#{i.reduce &:+} #{i.reduce &:*}"
Jeder &
braucht einen Platz vor sich. In Ruby i=$F.map &:to_i
bedeutet, i=$F.map(&:to_i)
wo &
ein Blockparameter übergeben wird. Aber i=$F.map&:to_i
bedeutet i=$F.map.&(:to_i)
wo&
ist ein binärer Operator.
Diese Verrücktheit tritt in Sprachen wie Perl oder Ruby auf, die mehrdeutige Interpunktion verwenden. Verwenden Sie im Zweifelsfall eine REPL oder schreiben Sie kurze Programme, um die Whitespace-Regeln zu testen.