Bóp khoảng trắng
Biết các quy tắc cho khoảng trắng trong ngôn ngữ của bạn. Một số dấu chấm câu, hoặc các ký tự khác, có thể không cần bất kỳ khoảng trắng xung quanh. Hãy xem xét hàm shell Bourne này :
f () { echo a; echo b; }
Trong vỏ Bourne, ();
là các ký tự đại diện và không cần khoảng trắng xung quanh. Tuy nhiên, {}
là các từ và cần khoảng trắng trừ khi chúng nằm cạnh các siêu ký tự. Chúng tôi có thể chơi gôn 4 chỗ bên cạnh ();
, nhưng phải giữ khoảng trống giữa {
và echo
.
f(){ echo a;echo b;}
Trong Common Lisp và PicoLisp , ()
là các ký tự đại diện. Xem xét mã này để tìm trung bình của hai số:
(/ (+ a b) 2)
Chúng tôi có thể chơi golf 2 chỗ.
(/(+ a b)2)
Một số ngôn ngữ có quy tắc kỳ lạ và tinh tế cho khoảng trắng. Hãy xem xét chương trình Ruby này, nó in tổng và tích của một dòng số nguyên.
#!ruby -an
i=$F.map &:to_i
puts"#{i.reduce &:+} #{i.reduce &:*}"
Mỗi người &
cần một không gian trước chính nó. Trong Ruby, i=$F.map &:to_i
có nghĩa là i=$F.map(&:to_i)
nơi &
vượt qua một tham số khối. Nhưng, i=$F.map&:to_i
có nghĩa là i=$F.map.&(:to_i)
nơi &
một toán tử nhị phân.
Sự kỳ lạ này xảy ra trong các ngôn ngữ, như Perl hoặc Ruby, sử dụng dấu câu mơ hồ. Nếu nghi ngờ, hãy sử dụng REPL hoặc viết các chương trình ngắn để kiểm tra các quy tắc khoảng trắng.