- ベストアンサー
LISP - (BCD) から B だけを取り出したいです。
学校でLISPを使ってのプログラミングの宿題が出ました。 初めてなので、わからないことだらけなのですが、 (A BCD)からAを取り出すには (CAR '(A BCD)) で取り出せますよね。 (BCD)からBだけ、もしくはCだけを取り出すにはどうすればよいのでしょうか? どうぞよろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
専用の組み込み関数はなかったと思いますが、 (make-symbol (subseq (symbol-name 'bcd) 0 1)) とすればできます。 最後にできたシンボルを現在のpackageに登録したければ、make-symbol を intern にしてください。
その他の回答 (1)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
回答No.1
あなたの処理系をしらないですが ATOM(シンボル)を分解する関数として explodeが使えたと思います。 (explode 'BCD) (explode (cadr '(A BCD)) とすればいずれも (B C D) または (b c d) の様になるはずです。 そうすれば、car で B、cadr で C が取り出せますね。
質問者
補足
回答ありがとうございます。 試してみたのですが、 Error: Undefined function EXPLODE called with arguments ((BCD)). というエラーが出ました。 授業ではCommon LISPを使ってプログラミングをということで、 よくわからないまま、LispWorks Personal Editionを使っています。 explodeはCommon LIPSに含まれているfunctionなのでしょうか? 何も知らなくてすみません。
お礼
ご回答ありがとうございました。 とても助かりました!