27

文字列を引数として取り、キーワードを返す Common Lisp の関数はありますか?

例: (keyword "foo")->:foo

4

6 に答える 6

33

make-keywordこれは、キーワード作成プロセス(パッケージinternへの名前の入力)をパッケージ化する関数KEYWORDです。:-)

(defun make-keyword (name) (values (intern name "KEYWORD")))
于 2008-10-17T11:31:29.067 に答える
3

Alexandriamake-keywordライブラリには関数がありますが、大文字と小文字が保持されるため、必要なものを正確に取得するには、最初に文字列を大文字にする必要があります。

于 2012-08-25T01:03:37.870 に答える
1

この例では、スペースを含む文字列も処理します (ドットで置き換えます)。

(defun make-keyword (name) (values (intern (substitute #\. #\space (string-upcase name)) :keyword)))
于 2013-03-27T11:47:26.100 に答える
-5
(intern "foo" "KEYWORD") -> :foo

その他の文字列/記号の変換、および記号とパッケージの詳細については、CommonLispクックブックの文字列のセクションを参照してください。

于 2008-10-17T11:22:37.337 に答える