スキームで、データ型がシンボルかどうかを確認する方法はありますか?
何かのようなもの
(define symbol-test
(lambda (s)
(if (symbol? s)
#t
#f)))
だからあなたが好き(symbol-test 'x)
ならそうあるべきです#t
。(x
が定義されていなくても) そして、これは(symbol-test 3)
or(symbol-test '(1 2 3))
であるべきです#f
。
スキームで、データ型がシンボルかどうかを確認する方法はありますか?
何かのようなもの
(define symbol-test
(lambda (s)
(if (symbol? s)
#t
#f)))
だからあなたが好き(symbol-test 'x)
ならそうあるべきです#t
。(x
が定義されていなくても) そして、これは(symbol-test 3)
or(symbol-test '(1 2 3))
であるべきです#f
。
あなたは実際にそこにそれを手に入れました。symbol?
R5RSの標準機能です。
標準を引用するには
手順:シンボル?obj objがシンボルの場合は#tを返し、それ以外の場合は#fを返します。
(symbol? 'foo) ==> #t
(symbol? (car '(a b))) ==> #t
(symbol? "bar") ==> #f
(symbol? 'nil) ==> #t
(symbol? '()) ==> #f
(symbol? #f) ==> #f
関連するメモで、私は使用します
(define symbol-test symbol?)
現在の実装の代わりに、よりクリーンで理解しやすくなっています。