11/06/09 08:28:32.56
>>921
マクロはコンパイル時のコード変換だから、こういうのとはあんま関係ない。
定数じゃないと無理だし。
(ql:quickload :cl-ppcre)
(destructuring-bind (k . v)
(ppcre:split "=" "data=1")
(cons (intern (string-upcase k) :keyword) v))
(ppcre:register-groups-bind (k v)
("(.*)=(.*)" "data=1") ; ひどくいい加減な正規表現
(list (intern (string-upcase k) :keyword)
v))
(ql:quickload :cl-irregsexp)
;; パターンの表現に癖があるので、詳細は逆引きCommonLisp参照
(cl-irregsexp:match-bind (k #\= v) "data=1"
(list (intern (string-upcase k) :keyword) v))
925:デフォルトの名無しさん
11/06/09 14:39:00.54
>>922-924
ありがとうございます。
internという関数があるのですね。
文字列 キーワード 変換 とかでググってもわからなかったので助かりました。
926:デフォルトの名無しさん
11/06/09 14:50:44.46
キーワードは特殊なシンボル
927:デフォルトの名無しさん
11/06/09 23:01:35.62
cxmlでfeedを読み込んでデータを抽出する方法が全くわからん・・・
S式形式でパースするとアクセスがひどく冗長的になるので、
DOMでやろうと思うのだけれどドキュメントが無くて手詰まり。
どっかにサンプル無いですかね・・・
928:デフォルトの名無しさん
11/06/10 07:27:03.77
>>927
ほんとに調べた? 「closure xml」でググると、最初に
URLリンク(d.hatena.ne.jp)
という記事が引っ掛かるし、Closure XMLは本家のドキュメントも非常に整備されていて、
URLリンク(common-lisp.net)
まさにそのままズバリの「Quick-Start Example / FAQ」というのがあるんだけど。
APIの使い方が分からないのはDOMだからないよね? Lispへのマッピングについても、
「DOM/Lisp mapping」で触れられているし。
929:デフォルトの名無しさん
11/06/10 07:49:18.80
あと、S式形式でのアクセスが冗長というけれど、ケースバイケースだと思うよ。
S式にしてしまえば単なる木構造になるわけで、リスト操作の関数が使える。
mapcarとかreduceとか使いたい放題だし、child-nodesとか使わずに済む。
XMLS形式なら確かcddr。
S式じゃないにしても、STPならmap-childrenとかdo-childrenとかあるし、便利。
DOMは小回り効かないからあんまお勧めしない。
930:デフォルトの名無しさん
11/06/13 10:48:15.98
すいません><
まったくの初心者なので質問させてくださいorz
次のリスト構造をconsセルを用いて表してください。
1 (a b c)
2 ((x y)(u v))
3 (a (b (c)))
次のconsセル構造に対応するリストを書いてください
1 [1| -] →[2| -]→[3| -]
2 [. | /]→[. | /]→[hi | /]
lispの基本的な問題らしいのですが、
プログラミング初心者のため、わからず困っています。
どの問題でもいいので、ご存じの方いらっしゃいましたらよろしくお願い致します。
931:デフォルトの名無しさん
11/06/13 10:57:19.28
>>930
【CL】Lispの宿題片付けます 2【Scheme】
スレリンク(river板)
932:デフォルトの名無しさん
11/06/13 11:47:35.17
>>930
とっても簡単な問題だから、もうちょっと自分で考えてみようぜ。
コンスセルというものを理解できれば、単なるパズルだ。
URLリンク(blog.livedoor.jp)
で、これを踏まえた上で、例えば、(a b)というリストは、
[ a | -]→[ b | / ]
なわけだ。((a) (b))なら、
[ | -]→[ | / ]
↓ ↓
[ a | / ] [ b | / ]
になる。じゃあ、>>930の問題の答えはどうなる?
933:デフォルトの名無しさん
11/06/13 12:00:14.96
ちなみに、これはLisp以外でも、とてもよく使われるデータの形。
「線形リスト」というものの一種で、「片方向リスト」と呼ばれる。
プログラミング言語の授業取った(=プログラミングに興味がある)なら、
覚えといて絶対に損はないぜー。
934:デフォルトの名無しさん
11/06/13 12:28:06.58
>>930
どうでもいいけど後半の1と2は回答しようがないな
問題を写し間違っているんだろうけど
935:デフォルトの名無しさん
11/06/13 12:42:14.84
2は(cons (cons (cons hi nil) nil) nil)じゃないかと予想。
1は謎。関係ないけど、「-]→」って表現にはちょっと感心した。
936:デフォルトの名無しさん
11/06/13 12:52:44.47
>>935
なるほど
carから矢印が伸びていたわけね
937:デフォルトの名無しさん
11/06/15 13:51:51.22
>>929
racketのS式と互換性あるといいんだけどなあ
racketは不正なhtmlでも変換する
938:デフォルトの名無しさん
11/06/15 14:19:17.00
Closure XMLなら、パーサに自前で定義したハンドラを渡せば、
好きなデータ構造を作れるようになってたと思う。
939:デフォルトの名無しさん
11/06/17 10:54:24.21
>>223
URLリンク(journal.mycom.co.jp)
940: 【東電 80.6 %】
11/06/17 12:44:21.29
えー
941:デフォルトの名無しさん
11/06/19 08:00:09.18
寿命短すぎ
パロディ処理系すら作れやしない
942:デフォルトの名無しさん
11/06/19 08:17:10.20
プログラミング言語Asumis
943:デフォルトの名無しさん
11/06/19 08:54:11.21
>>939
もうGCに回収されるのか
944:デフォルトの名無しさん
11/06/19 16:44:44.51
アスミスが死にそうだからな