Chapter 2 データ型 - 2.2 合成データ型 - 2.2.4 データ型間の変換
型名->型名 で変換! 美しい! (ちょっと冗長だが)シンプルなルール! scheme って冗長さを厭わず「正しい」感じだな。
gosh> (char->integer #\d) 100 gosh> (integer->char 65) #\A
イレギュラーっぽいのを与えてみる:
gosh> (integer->char 0) #\null gosh> (integer->char -1) #\真真 gosh> (integer->char -2) #\真疹 gosh> (integer->char 128) #\ gosh> (integer->char 65535) #\鐃 gosh>
wwwww
gosh> (string->list "hello") (#\h #\e #\l #\l #\o) gosh> (number->string 16) "16"
数値型も色々あるので:
gosh> (number->string 1/2) "0.5" gosh> (number->string 1/3) "0.3333333333333333" gosh> (number->string 2+3i) "2.0+3.0i"
うーむ、complex 以外は評価してからか。
gosh> (string->number "16") 16 gosh> (string->number "Am I a hot number?") #f gosh> (string->number "10000" 2) 16
ふむ、型はあってるけど、ふさわしくない値は偽か。
irb(main):002:0> "Am I a hot number?".to_i => 0
gosh> (symbol->string 'symbol) "symbol" gosh> (string->symbol "string") string
ここまで。