【入門】CommonLisp【質問よろず】

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2006/01/29(日) 16:39:04
お前にはセンスも才能も将来もないことはよくわかった。
向上心が少しでも残されてるなら宿題は自分でやれ。
953デフォルトの名無しさん:2006/01/29(日) 16:50:14
ってか出題者は何を意図してんだろ。本気で小学校レベルなのかな。
954デフォルトの名無しさん:2006/01/29(日) 17:06:54
>>953
”翻訳”を通すとこうなる。
よくあることなので気に病まないほうがよい。
955デフォルトの名無しさん:2006/01/29(日) 17:09:21
少なくともLispの課題ではないのだろう。(C言語の課題かな?)
正しい質問場所を見つけるのも課題なのかな。w
956デフォルトの名無しさん:2006/01/29(日) 17:31:19
日本人です。
gclを起動→自動的にlispの関数が実行され、
読み込み状態になる。

を実現しなきゃいけないんです。
処理系弄るの初めてなので、
ちょっと困ってます。
957デフォルトの名無しさん:2006/01/29(日) 17:35:50
>>956
そうですか。ちなみに私は困っていません。
958デフォルトの名無しさん:2006/01/29(日) 18:23:55
おまいらちゃんと>>1を読み直せ。このスレはまた〜りが信条じゃなかったのか?
GCLってとこが致命的だな。いまどきGCLメインで使ってる人ってどれくらい居るんだろ。

普通に考えたらREPL起動前にユーザ定義の処理を走らせるとかその程度のことは処理系が
持ってるはずなんで>>948の言い分を調べてみるのが先決かと。
調べた結果「無い」ってことならそれを実装しろってのが課題の主旨と思われるので
REPLに突入する前に自前のコード突っ込めば終わりじゃね?
959デフォルトの名無しさん:2006/01/29(日) 18:29:04
Lispの授業じゃなくてコードリーディングみたいなのの課題なんじゃない?
さすがにスレ違いだと思うよ。
960デフォルトの名無しさん:2006/01/30(月) 00:02:17
gclに、iniファイルとかは使えますか?
961デフォルトの名無しさん:2006/01/30(月) 00:05:06
>>958
もうちょいまともな聞き方すれば数日前に答えが手にはいったのにな。
ちょっと酷いからスルーしてしまってた。

1. まず hogehoge.lisp ってファイルをエディタでつくる。
% vi hogehoge.lisp
2. -load オプションをつかって gcl を起動する
% gcl -load hogehoge.lisp
最近の GCL ならこれで gcl が起動し hogehoge.lisp を読み込まれる

もし本当に GCL を改造しろという課題なら 2ch でダメダメな質問してる時点
で自力で解くのは諦めたほうがいい。クラスのできそうなやつに飯でもおごる
とかしてやってもらうのが唯一の方法だろ。

>>958 行動を選択してください [A/B/C]
A. 知りたい事がわかったので礼も言わずに消える
B. 礼を言って消える
C. 回答が的はずれだ俺の知りたい事はxxxxとかいいだす

962デフォルトの名無しさん:2006/01/30(月) 00:14:34
2ch でだいぶんトンデモ質問にも慣れたと思っていたけどこれは…
もう超能力で補うしかねぇな。まっとうなところなら

A. GCL のオプション設定を ini ファイルで指定できますか?
→ コマンドラインからの ni ファイルの解析を自分でやらないと標準で ini ファイル

B. GCL で ini ファイルを読み書きするライブラリは標準でついていますか?
→ ついてません。ini ファイルの読み書きがしたい場合は自力でなんとかしてください。

C. GCL で ini ファイルを読み書きする事は可能でしょうか?
→ 自分で処理を書く、Win32API を呼び出すなどすればできます。が C でini が扱える程度の技術が必要です。

どれか当ってねぇかな〜と期待
963デフォルトの名無しさん:2006/01/30(月) 00:22:34
すみません。
gclを起動したら、初期設定ファイルを読み込んで、
こちらの指定したコードを実行させるようにはできないかと思ったのです。
schemeではiniファイルを読ませることができたので。
どうすればいいですか?
964958:2006/01/30(月) 00:30:10
ぉ。風呂から出てきたら俺が質問者になってるみたいだな。
ほんじゃ>>961 の回答は以下でファイナルアンサーってことでよろしく。

D. 誰か次スレ立ててね はぁと(w

あと質問してる人、sage覚えてね。
965デフォルトの名無しさん:2006/01/30(月) 00:36:19
>>958 殿へ
どうみても誤爆です。
拙者責任をとって切腹つかまつるゆえ次スレは立てられませぬ。
966デフォルトの名無しさん:2006/01/30(月) 00:38:39
次スレいらんだろ。
このスレ使いきるまで一年以上かかってるし、本スレに合流でいい。
967デフォルトの名無しさん:2006/01/30(月) 00:49:46
>>961
> 本当に GCL を改造
main関数をmain2とかに改名して、
argcとargv弄るだけ…でいいんだろうか。
それだと学校の課題としては変だよなぁ…。
968デフォルトの名無しさん:2006/01/30(月) 00:54:34
GCLの質問する奴、みんな質問の仕方が妙だよな。
気になるから誰か課題の全文をウプ汁。
おじさんが模範解答を作ってやる。
969デフォルトの名無しさん:2006/01/30(月) 01:18:05
何か盛り上がりそうだけど本スレ汚すのも気が引けるんであふれたら
過疎化したスレのリサイクルにご協力をお願いします。

【一日】CommonLisp【一門】
http://pc8.2ch.net/test/read.cgi/tech/1106587515/
970963:2006/01/30(月) 01:22:43
>>967
「他のcのプログラムから、gclのmain関数を呼び出し、
その時点で、こちらの指定したlispのコードが実行され、
ユーザの入力待ち状態にすること」
です。
971デフォルトの名無しさん:2006/02/01(水) 01:50:05
>>970
ほんとにそんなダメ日本語な問題なのか?思い込みで解釈せずに正確に写せ。
あと Mail 欄には sage と入力してください。それができたら解答する。
972デフォルトの名無しさん:2006/02/02(木) 03:22:43
>2006-01-30 02:39 gb
>
> * lisp-kernel/freebsd8664/: Makefile, elf_x86_64.x: New files.
>
> FreeBSD make (and gmake) both want to rebuild all .s files, but
> this otherwise seems to work.

FreeBSD にも対応するのかな。
973デフォルトの名無しさん:2006/02/04(土) 02:32:09
Lispで記述された結構な量のライブラリがあって、これをC/C++から簡単に呼び出せる
ようにしたいのですがお勧めの処理系はどれになりますか?
LispからC/C++を呼び出す例はいろんな処理系でドキュメントが整備されてますが
逆はあまりやられてないようなので。ECLがC/C++との親和性が高いかなと思っていじって
いるんですがどの程度規格に準拠してるかとか、いまのライブラリがそのまま
コンパイルできるかなとか疑問な点がまだ多いので識者の意見をお聞かせいただければ、と。
974デフォルトの名無しさん:2006/02/07(火) 04:04:49
授業でLISP習ったんだけど
最初なんじゃこりゃ頭いてーと思ったけど
これ結構おもすれー(^ω^)
975デフォルトの名無しさん:2006/02/13(月) 23:01:02
(eval '(^ω^))
おもすれー
おもすれー
976デフォルトの名無しさん:2006/02/14(火) 16:39:01
JAVAからclispを呼び出せるようになったのだが、何に使えるだろう?
977デフォルトの名無しさん:2006/02/14(火) 19:36:49
>>976
JAVAからclispを呼び出すのに使える
978デフォルトの名無しさん:2006/02/14(火) 19:48:30
>>977
それには気がつかなかった
979デフォルトの名無しさん:2006/02/14(火) 21:49:00
>>977
目からうろこが(ry
ま、clispがjavaから呼べてもLISPを使用しなければならない
業務処理が思いつかん。
やhり無駄なものを作ってしまったか。
980デフォルトの名無しさん:2006/02/14(火) 21:55:01
Servlet を Common Lisp で書けたりすると面白いかも。
そうなると Lisp 自体も Java VM 上で動かして、高速に相互呼び出しできる
ようにしたくなるね。
981デフォルトの名無しさん:2006/02/14(火) 21:58:04
じゃ、ABCL で。
982デフォルトの名無しさん:2006/02/14(火) 22:37:55
>Java VM 上で動かして

それってjavaでlispの処理系を書くということ?
どこかにありそうな気がするな。
基本的にjarかなんかでjavaコードの中でlispコードが
走れば最高なんだけどな。
XMLのパースとか楽になるんだが。
983デフォルトの名無しさん:2006/02/14(火) 22:40:37
984デフォルトの名無しさん:2006/02/14(火) 23:03:52
>>983
すごいねコレ。
早速使ってみるわ、thx
985デフォルトの名無しさん:2006/02/14(火) 23:10:57
(format t \"Hello, world!~%\")が8秒かかるんだが、
compileすれば早くなる?
986デフォルトの名無しさん:2006/02/14(火) 23:16:04
スマソ。俺はちゃんと使った事がある訳じゃないんで詳細は知りません。
テキストエディタに使われているくらいだから、そんなに遅くはないと
思いたいけど。

http://armedbear-j.sourceforge.net/

JavaVM の起動とクラスのロードに時間が掛かってるとかじゃなくて?
987デフォルトの名無しさん:2006/02/14(火) 23:21:24
>JavaVM の起動

それだ。
別のVMを起動するのに時間がかかっているのか。
同一VMで動くようにすれば早そうだ。
988デフォルトの名無しさん:2006/02/14(火) 23:53:28
うちではこんな感じ。jikes でコンパイルしてたから、javac ならもっと速いかも。
別の VM を起動したりはしないと思うよ。初回だけ妙に遅いね。

% ./abcl
Armed Bear Common Lisp 0.0.9 (built Tue Feb 14 2006 23:40:55 --900)
Java 1.4.2_09 Apple Computer, Inc.
Java HotSpot(TM) Client VM
Low-level initialization completed in 2.388 seconds.
Startup completed in 9.052 seconds.
Type :HELP for a list of available commands.
CL-USER(1): (time (format t "hello, world~%"))
hello, world
5.287 seconds real time
62770 cons cells
NIL
CL-USER(2): (time (format t "hello, world~%"))
hello, world
0.0020 seconds real time
67 cons cells
NIL
CL-USER(3):
989デフォルトの名無しさん:2006/02/15(水) 00:54:59
うちは Windows でやってみたが、やはり一発目は遅いね。
クラスライブラリのロードか何かだろう。

Armed Bear Common Lisp 0.0.9 (built Wed Feb 15 2006 00:49:19 --900)
Java 1.5.0_04 Sun Microsystems Inc.
Java HotSpot(TM) Client VM
Low-level initialization completed in 0.563 seconds.
Startup completed in 2.172 seconds.
Type :HELP for a list of available commands.
CL-USER(1): (time (format t "hello, world~%"))
hello, world
1.203 seconds real time
62770 cons cells
NIL
CL-USER(2): (time (format t "hello, world~%"))
hello, world
0.0 seconds real time
67 cons cells
NIL
CL-USER(3):
990デフォルトの名無しさん:2006/02/15(水) 01:19:54
すみません、インストールしてabclからjreのメソッドとかは呼び出せるんですがサンプルのhello.javaがコンパイルできません。
どうすれば・・・いいんでしょう
F:\abcl-0.0.9\examples>javac hello.java
hello.java:1: パッケージ org.armedbear.lisp は存在しません。
import org.armedbear.lisp.*;
^
hello.java:8: シンボルを見つけられません。
シンボル: クラス Interpreter
場所 : hello の クラス
Interpreter interpreter = Interpreter.createInstance();
^
hello.java:8: シンボルを見つけられません。
シンボル: 変数 Interpreter
場所 : hello の クラス
Interpreter interpreter = Interpreter.createInstance();
^
エラー 3 個
991デフォルトの名無しさん:2006/02/15(水) 01:38:37
>>990
cd examples
javac -classpath ../abcl.jar hello.java
java -classpath ../abcl.jar;. hello
みたいな感じで動いたよ。
992デフォルトの名無しさん:2006/02/15(水) 01:46:49
>>991
おお!動いた、動きましたありがとう!
993デフォルトの名無しさん:2006/02/15(水) 13:05:42
ABCLでだが
Interpreter interpreter = Interpreter.createInstance();
LispObject obj = interpreter.eval("(print (directory \"c:/\")");
これが動かない理由が分からない。
XYZZYだと動くんだが。
994デフォルトの名無しさん:2006/02/15(水) 13:54:15
>>993
Common Lisp の仕様判ってる?
xyzzy なんて方言を持ち出されても・・・
995ゲハシマ:2006/02/15(水) 19:17:27
>>994
偉そうに言うだけか?
仕様とやらを示してみろよ

996デフォルトの名無しさん:2006/02/15(水) 20:17:09
>>995
大馬鹿発見!!
997デフォルトの名無しさん:2006/02/15(水) 20:18:53
とりあえず >>102
998993:2006/02/15(水) 20:59:40
>994
主にjavaしか触らないので言語仕様は良くはしらないが、
XYZZYとは微妙に違うということは解った。

>995
あんた誰?
999993:2006/02/15(水) 21:12:49
あるディレクトリの拡張子が指定されたものであった場合に、条件に
合致する全てのファイルを削除するlisp式ってどう書きます?
1000デフォルトの名無しさん:2006/02/15(水) 21:21:35
CL-FAD を使えば

(fad:walk-directory
#p"/home/onjo/tmp/" ;; ディレクトリを指定
#'(lambda (p)
(when (string-equal (pathname-type p) "txt") ;; 条件判定
(fad:delete-directory-and-files p))))
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。