Peras ruang putih
Ketahui aturan untuk spasi putih dalam bahasa Anda. Beberapa tanda baca, atau karakter lain, mungkin tidak memerlukan spasi putih di sekitarnya. Pertimbangkan fungsi shell Bourne ini :
f () { echo a; echo b; }
Dalam Bourne shell, ();
adalah metacharacters, dan tidak perlu mengelilingi spasi putih. Namun, {}
adalah kata-kata dan perlu spasi putih kecuali mereka di sebelah karakter metak. Kita dapat bermain golf sejauh 4 ruang di sebelah ();
, tetapi harus menjaga jarak antara {
dan echo
.
f(){ echo a;echo b;}
Dalam Common Lisp dan PicoLisp , ()
adalah karakter metachar . Pertimbangkan kode ini untuk menemukan rata-rata dua angka:
(/ (+ a b) 2)
Kami dapat bermain golf 2 ruang.
(/(+ a b)2)
Beberapa bahasa memiliki aturan aneh dan halus untuk spasi putih. Pertimbangkan program Ruby ini, yang mencetak jumlah dan produk dari linier bilangan bulat.
#!ruby -an
i=$F.map &:to_i
puts"#{i.reduce &:+} #{i.reduce &:*}"
Masing-masing &
membutuhkan ruang sebelum dirinya sendiri. Di Ruby, i=$F.map &:to_i
berarti di i=$F.map(&:to_i)
mana &
melewati parameter blok. Tapi, i=$F.map&:to_i
berarti di i=$F.map.&(:to_i)
mana &
operator biner.
Keanehan ini terjadi dalam bahasa, seperti Perl atau Ruby, yang menggunakan tanda baca yang ambigu. Jika ragu, gunakan REPL atau tulis program pendek untuk menguji aturan spasi putih.