Chapter 2 データ型 - 2.1 単純データ型 - 2.1.3 文字
文字に行きます!
char? で文字かどうか確かめる。
gosh> (char? #\c) #t gosh> (char? 1) #f gosh> (char? #\;) #t
うん。関数名に ? が使えるのはでかいよな。わかりやすい。scheme の場合は - も使えてウラヤマス。
空白文字は#\ 、あるいはより読みやすく#\spaceと書くことができます。
はぁ、わかりにくいな。\ の後はなんなんだ。
gosh> (char? #\) (返ってこないので Ctrl-C を押した) *** ERROR: unhandled signal 2 (SIGINT) Stack Trace: _______________________________________
gosh> (char? #\ ) #t
わかりきっていてもやる。なぜか。
gosh> (char? #\space) #t
わかりにくいから普通こっちだな。
タブは #\tab かな?
gosh> (display #\tab) #<undef>
おk。
文字の比較:
gosh> (char=? #\a #\a) #t gosh> (char<? #\a #\b) #t gosh> (char>=? #\a #\b) #f
ポリモーフィズムとか無いな。でもまぁわかりやすい。
ん?ホントに無いのか?
gosh> (=? #\a #\a) *** ERROR: unbound variable: =? Stack Trace: _______________________________________ gosh> (<? #\a #\b) *** ERROR: unbound variable: <? Stack Trace: _______________________________________ gosh> (=? #\a #\b) *** ERROR: unbound variable: =? Stack Trace: _______________________________________
ねぇwww。なんかポリシーがあるんだろうな。scheme って型大事なのかな? ん?もしかして、関数「型」言語って「関数型」っていう「型」があるの? いやいやいやいや、「手続き型言語」って言葉もあるし関係ないな。
あーでも、比較演算子(っていうか関数)にも ? をつけるっていいな。思いつかなかった。真偽を問う関数には全部 ? を付けりゃいいんだよ。Ruby で試してみよう。
if hoge >? fuga puts "hoge の方がでかい!" end
微妙……だけど、馴れそうな気もすぃ。
時間切れ、今日はここまで。また来週 ノシ