【Lisp】プログラミング言語 Clojure #4【JVM】 [無断転載禁止]©2ch.net (89レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
69(1): デフォルトの名無しさん [] 2021/05/11(火) 00:27:26.30 ID:5VzwiW7v(1/3) AAS
>>6868(1): デフォルトの名無しさん [] 2021/05/10(月) 23:29:16.21 ID:zV1+0nw0(1) AAS
Clojure 二日目です
(ns example.trumps.card)
(def spades 4)
(def hearts 3)
(def diamonds 2)
(def clubs 1)
(def suit '(spades hearts diamonds clubs))
って定義して
user=> (use 'example.trumps.card)
nil
user=> spades
4
user=> suit
(spades hearts diamonds clubs)
user=> (first suit)
spades
user=> (= (first suit) spades)
false
user=> (= (eval (first suit)) spades)
true
ってなるのが理解出来ません…
特に (= (first suit) spades) が false になるのは何でですかね?
多分「評価」って事と、そのタイミングが理解出来てないんだと思いますが…
丁度 Clojure 三日目になりました
(ns example.trumps.card)
(def spades 4)
(def hearts 3)
(def diamonds 2)
(def clubs 1)
;(def suit '(spades hearts diamonds clubs))
(def suit (conj '() clubs diamonds hearts spades))
って直したらイケました
user=> (use 'example.trumps.card)
nil
user=> spades
4
user=> suit
(4 3 2 1)
user=> (first suit)
4
user=> (= (first suit) spades)
true
リストを作りたいからクォートで評価を止めたので
リストの中身も評価されずに追加されている
って事だったみたいです…
うーん…
70: デフォルトの名無しさん [] 2021/05/11(火) 00:56:40.16 ID:5VzwiW7v(2/3) AAS
>>69
んで、こうなりました…
(ns example.trumps.card)
(def spades 4)
(def hearts 3)
(def diamonds 2)
(def clubs 1)
;(def suit '(spades hearts diamonds clubs))
;(def suit (conj '() clubs diamonds hearts spades))
(def suit [spades hearts diamonds clubs])
って定義して
user=> (use 'example.trumps.card)
nil
user=> suit
[4 3 2 1]
user=> spades
4
user=> (get suit 0)
4
user=> (= (get suit 0) spades)
true
インデックス要らないからベクタじゃなくてリストで定義しようとして
クォートで括弧の評価を止めてリストを定義したら
リストの中身も評価されなかったので
クォートの要らないベクタに変更したら
ベクタの中身はちゃんと評価されましたとさ
別にインデックス要らないんだけど…
72: デフォルトの名無しさん [] 2021/05/11(火) 20:06:43.07 ID:5VzwiW7v(3/3) AAS
>>7171(1): デフォルトの名無しさん [sage] 2021/05/11(火) 10:31:49.88 ID:zfkVf3yY(1) AAS
これを (def suit '(spades hearts diamonds clubs))
こうすれば (def suit (list spades hearts diamonds clubs)) 中身を評価したリストが作れる
クォートでやりたいならこれでもいい (def suit `(~spades ~hearts ~diamonds ~clubs)) バッククォートの中はチルダをつけた式だけ評価してくれる
アドバイスありがとうございます!
普通に list 関数でリストを作ればよかっただけだったんですね…
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.019s