08/06/17 07:19:49
time の結果なら
(with-output-to-string (*trace-output*) (time ...))
print した値なら
(with-output-to-string (*standard-output*) (time ...))
でどうだろう。
902:デフォルトの名無しさん
08/06/19 22:01:53
マクロで(newaddres x y z)と入力すると
(setf (get 'x 'y) 'z)と属性リストに代入することができるようにする
マクロはどのように実現すれば良いのでしょうか
903:デフォルトの名無しさん
08/06/19 22:24:32
(defmacro newaddres (x y z) `(setf (get ',x ',y) ',z))
だが、本当にあなたがやりたい事はマクロが必要なのかな?
(defun f (x y z) (setf (get x y) z))
でもいいんじゃないの?
904:デフォルトの名無しさん
08/06/19 23:11:17
>>903
>(defmacro newaddres (x y z) `(setf (get ',x ',y) ',z))
ありがとうございます。
',の部分がわからなかったので助かりました。
>(defun newaddres (name title contents) (setf (get name title) contents))
としたのですが
定義した後(newaddres tanaka live yokohama)とするとTANAKA has no value と言うエラーが出てしまいます。
905:デフォルトの名無しさん
08/06/20 01:23:30
それだと、tanakaというシンボルを評価した結果 == 未定義な変数TANKAを参照しちゃう。評価を止めるには、'クォートをつける。
(newaddres 'tanaka 'live 'yokohama)
クォートするのが面倒だって?だが、評価を ' で ON/OFF できるっつーことはだ、↓のようにできるってこと。
(setf yokohama-list '(tanaka yamada sato steve))
(dolist (who yokohama-list)
(newaddress who 'live 'yokohama))
そもそもシンボル?評価?意味不明というならまた別途説明するよ。
906:デフォルトの名無しさん
08/06/20 09:51:27
いや、結構です。
907:デフォルトの名無しさん
08/06/20 15:10:49
>>906
やめて下さいよ
違う人がレスするのは
908:デフォルトの名無しさん
08/06/20 15:13:59
そういう用途にシンボル使う時は、印字表現に注意。特に空白。
909:デフォルトの名無しさん
08/06/20 18:31:41
scをみたけど、
巷にはcでlispインタプリタを作ってみたって人は多い。逆に
lispでcインタプリタを作ってみたという人はきいたことがないな。
作る必要もないものね。
910:デフォルトの名無しさん
08/06/20 21:58:18
てか不可能。
911:デフォルトの名無しさん
08/06/20 22:00:45
cでcインタプリタは昔Cマガで見たな。
c++ならまだしもcのインタプリタなんて教育用途でも微妙だと思ったが。
912:デフォルトの名無しさん
08/06/20 22:32:10
>>910
理由は?
# 「性能とかの実用性は度外視して」が前提だが。
913:デフォルトの名無しさん
08/06/20 22:40:25
Cインタプリタくらいあるだろ
URLリンク(wiki.osdev.info)
914:デフォルトの名無しさん
08/06/20 22:59:40
2進数を10進数に変換する関数なのですが
(defun two2ten (x)
(let ((n 0) (goukei '()))
(loop (if (< (1- (length x)) n) (return (lsadd goukei))
(progn (push (lsadd (mapcar #'(lambda (a) (* a (expt 2 n))) x)) goukei) (1+ n))))))
と言う関数がどこかが終わらないのか15秒ほど待ってみても答えが出ません。
何処に原因が有るのかおしえていただけませんでしょうか?
lsadd:与えられたリストの全要素の合計を数で返す関数
自作ですがこれは確実に動作します。
xはリスト形式で式に与えています。(1 0 0 1 1 0)の様な形式です。
915:デフォルトの名無しさん
08/06/20 23:41:06
>>914
下を見れば分かるかな。その変数 n を出力してみるといいよ。
1+ だけじゃ値は増えてないから。
cl-user(12): (setq x 10)
10
cl-user(13): (1+ x)
11
cl-user(14): x
10
916:デフォルトの名無しさん
08/06/20 23:59:58
>>715
ありがとうございます。
忘れてしまっていました。
ありがとうございます。
917:デフォルトの名無しさん
08/06/21 00:21:57
忘れるなよ。
918:デフォルトの名無しさん
08/06/21 07:42:57
LispでDLLを作って他のプログラムから呼び出すことはできますか?
919:デフォルトの名無しさん
08/06/21 08:10:47
LispWorks, ECL はできるよ。CLISP, SBCL はできない。他の処理系はしらない。
920:デフォルトの名無しさん
08/06/21 19:38:23
CommonLispのメーリングリストを開設しようと思うのですが
Yahooの提供サービスで良いのでしょうか
YahooIDをお持ちでない先輩がいらっしゃるといけないので
921:920
08/06/21 19:43:34
GoogleMLは広告が入らないそうなのでこちらも良さそうなのですが
これについても上と同様の質問についてお答え願います。