トップページ > プログラム > 2014年09月13日 > 0gDmFCxq

書き込み順位&時間帯一覧

16 位/234 ID中時間01234567891011121314151617181920212223Total
書き込み数1100000001000000010000004



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
【Lisp】プログラミング言語 Clojure #3【JVM】

書き込みレス一覧

【Lisp】プログラミング言語 Clojure #3【JVM】
581 :デフォルトの名無しさん[sage]:2014/09/13(土) 00:24:34.54 ID:0gDmFCxq
リストやシーケンスじゃなくて、対が欲しいのですが、どうすればよいでしょうか

代用するのはよいですが、できるだけ一般的に行われている方法を知りたいです
【Lisp】プログラミング言語 Clojure #3【JVM】
584 :デフォルトの名無しさん[sage]:2014/09/13(土) 01:06:48.06 ID:0gDmFCxq
>>583
(pair 1 2) が()やnilから構成されるリストやベクタではなく、 (pair 1 ()) が '(1) と同値になるような pair が欲しいです
lisp の . や、 prologの | みたいな演算子です

ゆにふぃケーションのプログラムを作っていて、
(1 2 3 4) を (pair x y) にマッチさせたときに、(y . ()) と (2 . (3 . (4 . ())) ではなく、 y と (2 . (3 . (4 . ())) 全部をマッチさせたいのですが、
()から構成したときだけリストと同値になる対やタプルがないとかなり面倒なことになりそうです
【Lisp】プログラミング言語 Clojure #3【JVM】
588 :デフォルトの名無しさん[sage]:2014/09/13(土) 09:11:59.83 ID:0gDmFCxq
すみません

(defn a [n]
(if(<= n 0) 0 (b (- n 1))))

(defn b [n]
(if (<= n 0) 0 (+ (a n) 1)))

これ↑を test.clj に書いて (load "./test") や (load-file "./test.clj") を実行すると エラーになります
b の位置を入れ替えて保存したあとにもう一回ロードするとエラーは消えます
2回目以降は、replを再起動するまではエラーはでません

replを起動するたびにこれをやると面倒なのですが、みなさんはどうしてるのでしょうか
【Lisp】プログラミング言語 Clojure #3【JVM】
592 :デフォルトの名無しさん[sage]:2014/09/13(土) 17:10:16.96 ID:0gDmFCxq
やっぱり見づらいです

(def db7
(list
(list (mlist "append" NIL "Ys" "Ys"))
(list (mlist "append" (mcons "X" "Xs") "Ys" (mcons "X" "Zs"))
(mlist "append" "Xs" "Ys" "Zs"))))
(def q7 (list (mlist "append" "X" "Y" (range 1 7))))

user=> (prolog-test q7 db7)
((append.(X.(Y.((1.(2.(3.(4.(5.(6.mNIL)))))).mNIL)))))
#{X Y}
ans: ({X mNIL} {Y (1.(2.(3.(4.(5.(6.mNIL))))))})
ans: ({X (1.mNIL)} {Y (2.(3.(4.(5.(6.mNIL)))))})
ans: ({X (1.(2.mNIL))} {Y (3.(4.(5.(6.mNIL))))})
ans: ({X (1.(2.(3.mNIL)))} {Y (4.(5.(6.mNIL)))})
ans: ({X (1.(2.(3.(4.mNIL))))} {Y (5.(6.mNIL))})
ans: ({X (1.(2.(3.(4.(5.mNIL)))))} {Y (6.mNIL)})
ans: ({X (1.(2.(3.(4.(5.(6.mNIL))))))} {Y mNIL})
"end"


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。