スキームで、データ型がシンボルかどうかを確認する方法はありますか?
何かのようなもの
(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?)
現在の実装の代わりに、よりクリーンで理解しやすくなっています。