たとえば、アトム 'ABCD がある場合、アトムを構成する個々の文字を特定する方法はありますか?
質問する
223 次
2 に答える
11
これらの文字は「アトムを構成する」わけではありません (アトムは別のものであり、大まかに「リストではありません」)。
あなたが持っているのはシンボルです。シンボルには名前があり、それによって参照されます。次の関数でシンボルの名前を取得できますsymbol-name
。
CL-USER > (symbol-name 'ABCD)
=> "ABCD"
(両方ともsymbol-name
とABCD
は記号を示しますが、symbol-name
は評価されますABCD
が、 は引用によるものではないことに注意してください。上記は と同じように読みます(symbol-name (quote ABCD))
。)
symbol-package
シンボルには、関数、symbol-plist
、symbol-value
、またはで取得できる他のプロパティもありますsymbol-function
。
概要については、Hyperspec の第 10 章をご覧ください。
于 2012-09-11T19:09:03.353 に答える
4
シンボル内の文字のリストを取得するには:
(coerce (string 'ABCD) 'list) ; => (#\A #\B #\C #\D)
最初にシンボルを変換すれば、シンボルに対してあらゆる種類の通常の文字列分析を実行できます。
(string 'ABCD) ; => "ABCD"
(char (string 'ABCD) 0) ; => #\A
(subseq (string 'ABCD) 0 2) ; => "AB"
于 2012-09-11T14:16:59.863 に答える