はてなキーワード: ふつけるとは
恋人にふつけるをプレゼントする Schemer の俺が来ましたよ。
# 鬼の首をとったかのように書いてごめんよ。
CommonLisp はよく知らないんだけれど、 Scheme だと #\( と書けば ( という文字を示すことになるし、マルチバイトな処理系だと ((((((( というようなシンボルも問題なく使えたりする(開きカッコが全角であることに注意)。
処理系によっては半角のカッコでさえシンボルに使える、かもしれない。実際、ある処理系では SRFI-17 に関係したコードに半角空白を含むシンボルがあったりする。
そういうわけで
(define ((((( xs) (if (null? xs) '() (cons (map (lambda (c) (if (eqv? #\( c) #t #f)) '(#\( #\( #\( #\( #\( |setter of hogehoge|))) ((((( (cdr xs)))))
というようにカッコが不揃い(に見える)コードも可能。まあ、デモ以外でマルチバイト文字をシンボルに使うことなんてないだろうし、文字リテラルはたまに目視でカッコをチェックしていて「あれ?」と思うぐらいだし、そもそも上のコードは意味のある処理をしていないんだけど。
そういえば Emacs は閉じカッコを打った時、対応する開きカッコを強調表示してくれますよ。
Lisp なんてやってないで HSP とかやるといいよマジで。 Lisper になるには最初に HSP を学ぶのが最も近道なんじゃないかと最近気付いたんだ。
super pre 記法ないのかよ! Web2.0 っぽいインターフェースでブクマコメント表示したりする暇があるならこういう基本的なところやれよなマジで(いや、コメント表示も便利だけど)。そもそも増田のシステムなんてほとんどはてブと共通かと思ってたよ。増田が出た当初、「適当に組替えただけで、うまいことやったなぁ」と感心していただけに残念だ。