Видавіть пробіл
Знайте правила пробілів у вашій мові. Деякі розділові знаки або інші символи можуть не потребувати жодного навколишнього пробілу. Розглянемо цю функцію оболонки Борна :
f () { echo a; echo b; }
У оболонці Борна ();
є метахарактеристиками та не потребують навколишнього пробілу. Однак {}
це слова та потрібні пробіли, якщо вони не поруч із метахарактеристиками. Ми можемо відіграти 4 місця поруч ();
, але повинні зберігати простір між {
і echo
.
f(){ echo a;echo b;}
В Common Lisp і PicoLisp , ()
є метасимволу. Розглянемо цей код, щоб знайти середнє значення двох чисел:
(/ (+ a b) 2)
Ми можемо відіграти в гольф 2 місця.
(/(+ a b)2)
Деякі мови мають дивні та тонкі правила для пробілів. Розглянемо цю програму Ruby, яка друкує суму і добуток рядка цілих чисел.
#!ruby -an
i=$F.map &:to_i
puts"#{i.reduce &:+} #{i.reduce &:*}"
Кожному &
потрібен простір перед собою. У Ruby i=$F.map &:to_i
означає, i=$F.map(&:to_i)
де &
передається параметр блоку. Але, i=$F.map&:to_i
означає, i=$F.map.&(:to_i)
де &
знаходиться двійковий оператор.
Ця дивацтво трапляється в таких мовах, як Perl чи Ruby, які використовують неоднозначні розділові знаки. Якщо ви сумніваєтесь, використовуйте REPL або пишіть короткі програми, щоб перевірити правила пробілів.