CommonLisp Scheme Pa ..
[2ch|▼Menu]
686:デフォルトの名無しさん
05/08/30 23:14:12
日本語を扱いに長けているcommon lispの処理系には何がありますか?
schemeだったらgaucheで決まりなんだけど、common lispは良さそうなのが
見当たりません。


687:デフォルトの名無しさん
05/08/30 23:20:45
>>686
最近のclispはSJIS/JIS/EUC/Unicode自由自在だよ。
URLリンク(clisp.cons.org)

688:デフォルトの名無しさん
05/08/31 00:12:43
Petite Chez Scheme というのを ChezEdit-NT というエディタで動作させるのも楽しそう。

689:デフォルトの名無しさん
05/09/01 13:15:57
スレ違いならすんませんが、Scheme勉強しようと思って、
OSX TigerにGauche 0.8.5インストールしたところリンクが通らず、
Finkでdlcompat入れろつーことらしいから(10.2だけど)、
Fink入れてみたんだけどdlcompatとかなさそうで、
ほんじゃってんで、ports入れてみて、
dlcompat落としてみたら、コンパイルできんって感じでげす...orz
どげにしたらインストでけるんでがしょ?


690:デフォルトの名無しさん
05/09/01 13:35:34
しかるべき場所でちゃんとした言葉遣いで相談したほうが良いと思います。

691:デフォルトの名無しさん
05/09/01 14:06:18
port install gauche

692:デフォルトの名無しさん
05/09/01 21:30:54
gaucheの特徴
・define-macroがある
・マニュアルが日本語(ライブラリも)
・ライブラリが豊富
・Cで簡単に拡張できる。


693:デフォルトの名無しさん
05/09/02 04:52:45
>>686
SBCL は最近、日本語通る様になった

694:686
05/09/03 01:42:43
>>687>>693
おまいら、ありがとうございます。
>>950は次スレのテンプレに日本語使える処理系情報を追加しておくように。


695:デフォルトの名無しさん
05/09/03 05:56:43
gaucheでhttpクライアントを作ろうとしています。
このとき http-get 関数に :Accept-Encoding "gzip, compress" を
指定して圧縮されて受け取ったデータを展開するにはどうすればよいでしょうか?

javaみたいにgzipのストリームがあれば便利なんですが、ストリームどころか
素のgzipのユーティリティも見当たらないようです。
知ってる方お知恵をお貸し下さい、おながいします。


696:デフォルトの名無しさん
05/09/03 16:34:33
とりあえず何とかしたいなら、プロセスポートを
使ってgzipを呼ぶようにすれば?
rfc.mimeも使うよね。

697:デフォルトの名無しさん
05/09/03 23:19:40
URLリンク(www.rubyist.net)
Paul Grahamが(言わなきゃいいのに)本音を漏らしちゃった話。
言語デザイナーとしての限界とか、無理して作るなとか、さんざんなこと言われてる。

698:デフォルトの名無しさん
05/09/03 23:57:02
>>697
個人的にはPaulの意見は理解できる。つーか、Matz僻みすぎ。

699:デフォルトの名無しさん
05/09/04 00:00:15
やっぱLISPは完成度が高すぎるんだな。
Paul一人ごときが進化できる代物ではないと。
Guyぐらいの天才でもないと。

700:デフォルトの名無しさん
05/09/04 02:06:14
たしかに完成度は高いのかもしれんが、
抽象度の高いものは、漏れのような頭の悪い奴らにとっては使いこなすのが難しいわけで。
そういう意味で、Perl, Python, Rubyのような言語ってのは、脳味噌が一部不自由でもLispの
パワーの片鱗に触れられるって点で意味はあると思うんだけどな。
で、より毛深くなりたくなったら、Lisp/Schemeの世界に足を踏み入れればよいのだし。
結局のところ動的言語使いはLispに始まりLispに帰るのか。


701:デフォルトの名無しさん
05/09/04 02:15:22
比較的簡単な問題をちょいちょいっと手続き型で書いていく時は、LispよりPythonの方が便利だと思う。
公式ライブラリが豊富なのもこの長所を延ばしてる。

Perlはawkの改良として、歴史的意味があった。

Rubyは...えーっと...

702:デフォルトの名無しさん
05/09/04 04:10:30
arc は Vaperware への道をまっしぐら感が強いよなあ。

>>695
wiliki の方でも訊いてみてはどうでしょ。
>>696 みたいな感じの答えになりそうな気はするけれど、
具体的なコードも出してくれるかも知れんし。

703:デフォルトの名無しさん
05/09/04 04:53:54
Arc も、もう少し志を低くして
(asdf-install:install 'arc)
で使える便利ライブラリ、くらいにするといいんだよ。

704:デフォルトの名無しさん
05/09/04 07:30:26
Haskell ,Clean 等は効率的で、LISP, SCHEME は万能である。
万能とは、科学者にとって悲しむべき特性である。


705:デフォルトの名無しさん
05/09/04 11:24:03
とはいえLispも今までいろいろ進化してきたしな。
これで完成だとか言ってると危ないかも。

706:デフォルトの名無しさん
05/09/04 11:25:21
そういえば、LISPでも関数を特別視してるけど、
それをなくしたら新しい文化ができるかも。

つまり、関数呼び出しは全てfancall, applyを使う。


707:デフォルトの名無しさん
05/09/04 12:16:58
funcall も apply も関数ですが
ていうか scheme では既に特別視してないし

708:デフォルトの名無しさん
05/09/04 13:01:47
じゃあ、定理証明系見たいなノリでmacroで作ったやつをmapできたりさせよう。

709:デフォルトの名無しさん
05/09/04 13:09:09
他の言語なら適当な文法考えるだけでなにか
新しいものを追加した気分になれるがlispだと
そんなのマクロで書けるじゃんでほとんど終わる
ので圧倒的に不利なきがする


710:デフォルトの名無しさん
05/09/04 13:15:42
個人的には理論的純粋さよりも実用性だな。ライブラリがあればいい。
ANSI Common Lisp + ネットワーク + 国際化 + XML + ...
みたいなノリで CLtL3 を作って標準化してほしい。

711:デフォルトの名無しさん
05/09/04 18:55:28
LISPは記号処理は得意でも文字列操作はそれほどでもない中途半端さがない?

712:デフォルトの名無しさん
05/09/04 19:29:12
>>711
EmacsLispはいかがですか?(反則ぎみ)
つか、欲しかったら時分でマクロなり関数なり定義してけばOK。
ソースある処理系だったら実装言語で拡張しちゃえば最強。


713:デフォルトの名無しさん
05/09/04 19:53:44
一度SchemeやCommon Lisp使っちゃうと、elispでごりごり書くなんて事実上ありえん。
それならPerl使った方がマシ。

714:デフォルトの名無しさん
05/09/04 22:23:55
Common Lisp だとリーダマクロなんて最後の武器があるしなあ。
#/regexp/ みたいなものくらいなら片手間で実装できるし。
まあ regexp 自体は既存のライブラリ使うとしてだけど。
xml を直接埋め込むようなライブラリとかもあったよね。

あとはファーストクラスの動的マクロとかの黒魔術に手を染めるしかないかもなあ。
Graham は確かオプションで切り替えられるような機能を
arc でサポートする予定だったと思ったけれど。

洒落だったら後置記法の Sexpr とか思いつくんだけどなあ。

715:デフォルトの名無しさん
05/09/04 22:36:29
>>714
>後置記法

括弧つきFORTHだな。w

716:デフォルトの名無しさん
05/09/05 07:20:19
>>713
emacs の開発者やコード寄贈者には Scheme や Common Lisp ハッカーが
ごろごろいるけど。

717:デフォルトの名無しさん
05/09/05 23:59:51
(>>713 emacsは絶対けなしちゃ駄目!!(><))
↓以下別の話題

718:デフォルトの名無しさん
05/09/06 01:47:11
個人的にここがお気に入り
スレリンク(tech板)

719:デフォルトの名無しさん
05/09/06 04:50:31
荒れるからやめろ。
↓以下Lispの話題

720:デフォルトの名無しさん
05/09/06 11:46:48
LISPって夢があっていいけど
ライブラリを充実させてほしい。
どんなしょぼLISPでも使えるネットワーク系ライブラリとかよ。

721:デフォルトの名無しさん
05/09/06 14:16:24
Generaがナツカシス。
ああいう開発環境をいまの技術で作れば、めちゃ快適なんだろうなと夢想。


722:デフォルトの名無しさん
05/09/06 18:33:08
>>720
ほんとそのとおりだよ。LISPerにはライブラリ共有の概念がないのかね。


723:デフォルトの名無しさん
05/09/06 19:30:23
URLリンク(www.cliki.net)

724:デフォルトの名無しさん
05/09/06 21:32:59
偉そうなこと言うやつはいるけど。
それ以外の日本語のコンテンツの少なさは凄いよな。


725:デフォルトの名無しさん
05/09/06 21:40:16
↑偉そうなこと言うやつ

726:デフォルトの名無しさん
05/09/06 22:06:11
>>724
探せばそれなりにはあるよ。大学なり個人なり。
Java とかに比べれば、そりゃ少ないけど。

↓はテンプレに入れても良いかも。

チュートリアル
URLリンク(www.h7.dion.ne.jp)

ティップス
URLリンク(www.geocities.co.jp)

727:デフォルトの名無しさん
05/09/06 22:31:27
偉そうなこと言う奴は、確かに充実してる(多い)な

728:デフォルトの名無しさん
05/09/06 23:37:41
なんだ、宿題教えてもらえなかったのか

729:デフォルトの名無しさん
05/09/07 22:26:23
初心者用のコンテンツのみ充実してるな。


730:デフォルトの名無しさん
05/09/08 18:36:51
しかし、初心者自体は足りてないと

731:デフォルトの名無しさん
05/09/10 12:21:47
さっきうっかり chez のサイト踏んだら chez scheme が
version 7 に上がってたんで一応貼っておきますね。
リリースノートを眺めた限りではあんまり派手な変更はなさそうですけれど。
多言語方面に対応しないのはお客さんから要望が出ないからなんだろうなあ。

URLリンク(www.scheme.com)

732:デフォルトの名無しさん
05/09/12 03:15:04
>>731
値段が判りませぬ。幾らなんでしょうかご存じでしょうか。サイト探してみたんですけど
見当たらなかったように思います。

733:デフォルトの名無しさん
05/09/12 04:00:26
>>732
フリーで機能限定版(コンパイラが無い)の Petite Chez があります。
Chez 自体の値段は私も知りませんが ACL といい勝負だという噂は聞いたことがあります。
基本的に個人相手に商売してるんじゃなさそうな気がします。

734:flatline@Vim%Chalice ◆r6EONKKhcc
05/09/13 16:55:02
"On Lisp" のHTML版を置いておきますね.

っ [ URLリンク(user.ecc.u-tokyo.ac.jp) ]

まだTeXのマクロが残りまくりですが...

735:デフォルトの名無しさん
05/09/13 20:45:38
>>734
乙カレー! これで emacs-w3m で『On Lisp』が読めるよ。


736:デフォルトの名無しさん
05/09/13 22:01:01
>>733
ACLって1ライセンスいくらでしたっけ。
今ちょっとfranzのページ見てきたら載ってないのなー

737:デフォルトの名無しさん
05/09/13 22:02:28
>>736
時価とかじゃね?

738:デフォルトの名無しさん
05/09/13 22:08:48
URLリンク(www.franz.com)
によれば $599〜

739:デフォルトの名無しさん
05/09/13 22:45:29
そんなに高くないのな
・・で、日本語マニュアルは付いてくるのかい?

740:デフォルトの名無しさん
05/09/13 22:46:51
>>734
すげ
つーかここまでお疲れ様でした。

741:デフォルトの名無しさん
05/09/13 23:02:55
サポートいらないから、ソースネクストから1,980円で発売してほしい。

742:デフォルトの名無しさん
05/09/13 23:09:30
同意

743:デフォルトの名無しさん
05/09/13 23:19:45
microsoftの製品より安くね?

744:デフォルトの名無しさん
05/09/13 23:39:37
開発ツールじゃMSの製品に他のメーカは内容も値段も全く勝負にならん。

745:デフォルトの名無しさん
05/09/13 23:44:46
>>743
あっちは単言語で安いパッケージがある。

746:デフォルトの名無しさん
05/09/13 23:46:08
Microsoft Visual Common Lisp .NET 待望

747:デフォルトの名無しさん
05/09/13 23:59:21
Pythonですら.NETになったというのにおまいらときたら……

748:デフォルトの名無しさん
05/09/14 00:04:23
つ DotLisp
URLリンク(sourceforge.net)

749:デフォルトの名無しさん
05/09/14 00:24:29
On Lispの日本語版って出版されんの?
Franzの11月セミナーのとこにそれっぽいようなことが書いてあった気がするんだが。


750:デフォルトの名無しさん
05/09/14 00:47:14
Microsoft で CLR の主任設計者やってる Patrick Dussud は元々 Lisp 屋だし
今年の ILC でも講演してたよ。
URLリンク(international-lisp-conference.org)

751:デフォルトの名無しさん
05/09/14 06:20:08
>>749
> さらに、今年末出版予定の、邦訳版 On Lisp (原書著者Paul Graham)の翻訳者である野田開氏もお迎えし、
> 書籍On Lispについてや翻訳の体験談をお話し頂きます。

これか。
URLリンク(jp.franz.com)

752:デフォルトの名無しさん
05/09/14 06:45:41
そういえば On Lisp といったら原書の方も、
再版するとか改訂するとかする暇がないとか色々噂は聞くけれど、
実際のところどうなってるんでしょう。

753:flatline@Vim%Chalice ◆r6EONKKhcc
05/09/14 10:59:31
>>749
出版社の方が,原書を出した米国の出版社と交渉に当たって下さっているところです.

>>752
改訂版を出そうとしている(米の)出版社がGraham氏の原稿を待っているとのこと.
# 私もできれば改訂版に追従したいんですが...
Graham氏は完璧主義の方で,その上お忙しいので,しばらくかかりそう,とか.

754:デフォルトの名無しさん
05/09/14 15:04:06
Schemeもあるでよ〜
Common Larceny requires the Common Language Infrastructure. It is known to work with the Microsoft .NET Framework implementation.
URLリンク(www.ccs.neu.edu)

755:デフォルトの名無しさん
05/09/14 16:57:06
Larceny か
音沙汰無いなと思ってたらこんなところで

756:デフォルトの名無しさん
05/09/14 19:35:50
処理系依存の質問ですがここでいいですか?

FreeBSD4.11でportsからインストールしたCMUCL19a
traceの結果がレベル0しか出力されない

(defun fac (n)
(if (> n 1)
(* n (fac (1- n)))
1))

(trace fac)
(fac 3)

処理系の出力
0: (FAC 3)
0: FAC returned 6
6

教えてエロい人

757:デフォルトの名無しさん
05/09/14 21:29:51
SBCL 使えば? 日本語も使えるし。

758:デフォルトの名無しさん
05/09/15 02:19:00
計算過程をずっとsingle-floatの範囲内で収めたいのですが、ACL7は積み残しが
発生する場所では気を利かせてdouble-floatで計算してくれるみたいです。
C/C++のように強い型付けをされた言語の真似をさせるにはどうしたらよいですか。
foreign-function使ってfloat同士の加算だけの関数を呼び出すのは我ながら
バカらしい解決方法だと思うのですが、もっとまともな方法ありますか?

759:デフォルトの名無しさん
05/09/15 02:28:31
>>758
例えば
(defun p (x y)
 (declare (single-float x y))
 (the single-float (+ x y)))
みたいな書き方すれば多くのコンパイラは良きになしてくれるよ。

760:758
05/09/15 02:39:10
>>759
declareとtheを使った書き方は試しているのですが、まだ期待した結果を
得られるには至ってません。記述方法の問題かも知れないのでも少しいじってみます。
ありがとうございました。

761:デフォルトの名無しさん
05/09/15 06:26:15
.NET + Common Lisp については、こんなのもあるらしい。

URLリンク(weitz.de)
RDNZL - A .NET layer for Common Lisp


762:デフォルトの名無しさん
05/09/15 20:55:47
積極的にsingle使いたい理由でもあるの?
最適化のつもりなら多分逆効果だよ

763:758
05/09/15 22:46:38
>>762
僕への質問と理解してよければ、ハードウェアのシミュレータを書こうとしてるからです。
演算器がsingleしか持ってないので途中でdoubleに行っちゃったりして実機上の計算と結果が
異なってくるとイヤかなぁ、と。
マクロとかバンバン使って勝手に俺言語でっち上げて、パイプラインの状態とか視覚的に
見れるようなところまで持って行けたら素敵なんだけども。こんなことLispでやろうとするのって
おかしいですか?

>>753
出版されたら買わせていただきますわ。期待して待ってます。

764:デフォルトの名無しさん
05/09/15 23:08:26
C でも float foo(float x, float y) { return (x + x) / y; } を
foo(MAXFLOAT, 2) と呼び出した場合、途中 double で計算して
オーバーフローしない処理系があるし、それも規格合致だよ。

正確にエミュレートしたいのなら自前でビット演算するしかない。

765:758
05/09/15 23:47:07
>>763
ご忠告ありがとうございます。究極的にはそうなるんでしょうね。
SystemCとかってどうなってんのかな。暇なとき見てみよっと。


766:デフォルトの名無しさん
05/09/15 23:48:59
>>765
SystemCは厳格にやるクラスと高速なクラス(これは=float/doubleだけど)が両方
用意されているよ。

767:デフォルトの名無しさん
05/09/16 07:20:05
>>764
float の演算が double に変換されてから行われるのは K&R の時代の話じゃないの?
……と思ったけどオーバーフローが絡むとアレか。未定義だか処理系定義だかか。

768:デフォルトの名無しさん
05/09/16 09:53:09
ダカカ。

769:デフォルトの名無しさん
05/09/16 16:07:10
中村正三郎氏によるProactical Common Lispの書評(?)
URLリンク(iiyu.asablo.jp)
サイン本、いいなー。w

770:デフォルトの名無しさん
05/09/16 16:08:13
>>769
typo
誤:Proactical
正:Practical

771:デフォルトの名無しさん
05/09/16 23:11:58
今日のセミナー人少なかった・・・個人的にはすごく興味深い内容だったんで
もっと多くの人が知ってくれればいいのにと思ったよ。
撮影していたビデオを配信する予定がないこともないらしいのでちょっと期待。

Prologって使ったことないんだけど、適用する分野を間違えなければ便利そうね。

772:デフォルトの名無しさん
05/09/17 10:16:18
gosh> (display 2)
2#<undef>
gosh> ((car '(display display)) 2)
*** ERROR: invalid application: (display 2)

why? please.

773:デフォルトの名無しさん
05/09/17 10:53:05
lispboxっての入れてみたんだけど、
デフォルトのclisp2.34が起動時にエラーが起こるので、
エラーの起こらないclisp2.35を使ってみたいです。
しかし、clispフォルダの中身をいれかえて、
lispbox-register.elを入れてやるだけでは動かないようです。

どうやったら動くか知ってる人いませんか?
ちなみに、2.34のエラーは以下の通りです。上2行のWARNINGは2.35でもでるようです。
WARNING: locale: no encoding CP932, using UTF-8
WARNING: *TERMINAL-ENCODING*: no encoding CP932, using UTF-8
invalid byte sequence #xEE #x2E #x74 in CHARSET:UTF-8 conversion

よろしくお願いします。


774:デフォルトの名無しさん
05/09/17 11:14:52
>>772
display っていうシンボルを 2 に apply しようとしてる.
シンボルは関数でないから当然エラー.
やりたいことやるには
((car `(,display ,display)) 2)

775:デフォルトの名無しさん
05/09/17 11:25:13
おまえ初心者っぽい奴にいきなりunquoteでかいてんじゃねーよ
素直にlistで書けよ

776:デフォルトの名無しさん
05/09/17 11:27:14
'(display display) == (list 'display 'display)
`(,display ,display) == (list display display)

777:デフォルトの名無しさん
05/09/17 11:27:16
↑すまん、ちょっとあたまに血が上りすぎた
俺が言いたいのはquoteとリストの区別が付いてない初心者だから
順序立てて教えないと理解しないだろってことだよ

778:772
05/09/17 11:49:38
なるほど! 自分は

gosh> ('display 2)
*** ERROR: invalid application: (display 2)

こんなことをしているのと同じだったんですね。
774さんのようにunquoteで書くか、以下のようにして
書くかしてちゃんと関数として評価されるようにしなければ
ならなかったと。

gosh> ((car (list display display)) 2)
2#<undef>

おかげで unquote についても覚えることができました。
>>774-777さん。どうもありがとうございます。

gosh> display
#<subr display>
gosh> `(,display)
(#<subr display>)


779:デフォルトの名無しさん
05/09/17 11:57:35
LISPとSchemeの両方を使うが
頻繁に使わないって人はよく間違うよね。


780:デフォルトの名無しさん
05/09/17 15:04:42
間違わねーよ
間違う奴は全く理解してないってことだろ

781:デフォルトの名無しさん
05/09/17 21:58:51
>>769
その文章がWebに掲載された日の午前中に
私がamazonで購入したときには残り3冊だったのに、
その10分くらい後にはもう在庫なしになっていた。
洋書売り上げランキングも、最初見たとき5000位台だったのが、
一時的に50位くらいまで上がってるのを見た。
影響力すごすぎ。

782:デフォルトの名無しさん
05/09/18 00:18:02
そんなに影響力あるのかあの薄らハゲ。詳しく知らないけど何者?
リンク先のblog見るかぎりじゃ結構バカそうなんだが。バカを演じてるだけなのかな。

783:デフォルトの名無しさん
05/09/18 00:39:59
>>782
マイクロソフトの天敵みたいな人。
ちなみに元法務大臣とは別人だぞ。w
Wikipedia項目リンク

784:デフォルトの名無しさん
05/09/18 01:34:41
マイクロソフトの天敵だと思っているのは本人だけだろ。


785:デフォルトの名無しさん
05/09/18 09:25:35
>>780 (defun (hoge huga) ...)とか間違ってやるだろ?



786:デフォルトの名無しさん
05/09/18 10:20:03
どこの馬鹿がやるんだろう・・・。

787:デフォルトの名無しさん
05/09/18 14:58:41
>>785
defunとdefineの違いがなければ間違うかもしれんが、どちらかの単語を打ち込んだ
時点で自動的に脳内モードが切り替わるのでその手の間違いは少ない。

788:デフォルトの名無しさん
05/09/19 01:03:27
scheme でうっかり #' を書いてることはあるなあ。
あとは #t を t とか #f や '() を nil とか。
まあ書いた瞬間に気付いてへこむわけですが。

789:デフォルトの名無しさん
05/09/19 14:01:50
というか関数と変数で名前空間を分けることのメリットって何よ?
#:とかfuncallとかめんどくさすぎる

790:デフォルトの名無しさん
05/09/19 14:11:08
変数として使っても、呼び出しフォームで関数が取り出せるというだけかな。
CommonLisp的思考をしない限りはメリットはない。
おれもSchemeみたくスロット1つにしてしまっても良いと思う。


ところで、()をわざわざ'()とquote付けて書いてるのが多数なのは
宗教上の理由でしょうか。
()は評価しても()だよね?
()は#tとか#fと同じ様な扱いのはずだと思うけど。
Schemeはここだけ不思議。

791:デフォルトの名無しさん
05/09/19 14:14:00
>>790
Schemeでは () は評価できない(エラー)だと思う。

792:デフォルトの名無しさん
05/09/19 14:16:18
へーエラーになるのか。
なんでだろうね。
Gaucheでも入れてみようかな。

793:デフォルトの名無しさん
05/09/19 14:21:50
>>792
評価できる形式ではないから。
Common Lispの場合は()はnilというsymbolであってspecial変数としてnilという
値を持っているから評価できるだけ。

794:デフォルトの名無しさん
05/09/19 14:37:10
エラーなんだっけ?
R5RSでは未定義だったような。うるおぼえ。

795:デフォルトの名無しさん
05/09/19 14:41:17
>>794
ああ。正確には未定義だったかも。

796:デフォルトの名無しさん
05/09/19 15:09:52
やってみた。gaucheだと両方とも同じように評価される。

gosh> ()
()
gosh> '()
()

R5RSをみて見たけどようわからん。見当違いなトコ見てるかも。

4.1.3 Procedure calls
> Note: In many dialects of Lisp, the empty combination,
> (), is a legitimate expression. In Scheme, combinations
> must have at least one subexpression, so () is not a
> syntactically valid expression.

4.1.2 Literal expressions
> '() ===> ()

識者の登場キボン

797:デフォルトの名無しさん
05/09/19 15:13:36
思いっきり書いてるやん
> so () is not a
> syntactically valid expression.

798:796
05/09/19 15:15:09
orz...thx.


799:デフォルトの名無しさん
05/09/19 15:18:04
未定義ならgoshでは()=>()ってだけじゃないの。

ちなみに
Petite Chez Scheme Version 6.9c
Copyright (c) 1985-2003 Cadence Research Systems

> ()
()
> '()
()
これもgoshと同じか。

800:デフォルトの名無しさん
05/09/19 15:19:49
Guileね

guile> ()
ERROR: missing or extra expression
ABORT: (misc-error)
guile> '()
()
guile>


801:デフォルトの名無しさん
05/09/19 15:22:41
Guileはちゃんと(?)エラーになるな
guile> ()
ERROR: missing or extra expression
ABORT: (misc-error)
guile> '()
()
guile>

802:デフォルトの名無しさん
05/09/19 15:23:12
あら見事にかぶった。

803:デフォルトの名無しさん
05/09/19 15:24:22
>>800,801
おおぅ。ちゃんとエラーになる処理系もあるんだな。
やっぱquoteせにゃならんか。

804:デフォルトの名無しさん
05/09/19 16:05:09
Guileってもはや独自言語仕様に向かってなかったっけ?
Guileでエラーになったからと言え、これをSchemeの仕様と言ってしまっていいものか。
つーか未定義か。

805:デフォルトの名無しさん
05/09/19 20:40:25
まぁグィラーは特殊だから。

806:デフォルトの名無しさん
05/09/19 21:35:30
Guile は規格で正しいとされてないことは積極的にエラーにし、
Gaush や PLT Scheme は規格でエラーにしろとされてるものしか
エラーにしないような感じ。
以前出た (define (foo) (define x 10) (define y x) y) が
どう扱われるかもそうだったよね。

807:デフォルトの名無しさん
05/09/20 00:21:52
今、現在Schemeを勉強しているのですが
絵を簡易的なアニメーションさせることは
Schemeを使って可能でしょうか?
また、Schemeからリンクさせることも含めて
可能な手段をわかる人おられますか?
かなり求むです。

808:デフォルトの名無しさん
05/09/20 01:10:18
gauche-glとかオススメ

809:デフォルトの名無しさん
05/09/20 11:12:11
>>808

かなり感謝です。実際に求めていたものがありました。
しかもSICPにも図形言語として紹介もしていたようですね。
みなさんかなりの達人では??
私もこれからレベルアップします!!

810:デフォルトの名無しさん
05/09/20 20:56:22
>>806
参考になるです。

811:デフォルトの名無しさん
05/09/21 01:25:04
>>773
| WARNING: locale: no encoding CP932, using UTF-8
| WARNING: *TERMINAL-ENCODING*: no encoding CP932, using UTF-8

公式配布の CLISP では CP932/Shift-JIS エンコーディングが使えません.
GNU Libiconv をリンクして作成したバイナリを使えば大丈夫です.

私の手元では Windows 2000/XP + Emacs22 CVS + Slime CVS + GNU CLISP 2.35
で↓のように日本語シンボルが使えています.あとはパス名に日本語が使えない
問題が解決できればバイナリを公開してもいいですが.

; SLIME 2005-07-29
CL-USER> (length "あいう")
3
CL-USER> (defun 2倍 (引数) (* 引数 2))
2倍
CL-USER> (2倍 2/3)
4/3


812:デフォルトの名無しさん
05/09/21 05:16:45
 昔パソコン用のMuLispで書いたシステムの移植を考えております。
問題は、auto-quoteとでもいいますか、アトムを評価するとこのシステムは、
アトムの名前を返すようなシステムになっておりました。
 これと同じ仕様になっているLispあるいはSchemeの処理系あるいは、
これを簡単に実現できるような(つまりMuLisp互換システム)システムを
ご存知の方教えていただけませんでしょうか。

813:デフォルトの名無しさん
05/09/21 09:51:22
既存の処理系の上でアトムの名前を返すevalをつくればいいような気がするけど・・・。

814:デフォルトの名無しさん
05/09/21 13:34:06
evalするかわりにatom->nameみたいなの用意すりゃいいじゃん
ちょっと意味ワカラナス

815:デフォルトの名無しさん
05/09/21 17:33:23
>>812
MuLispの仕様ってどこかに公開されてるの?

816:デフォルトの名無しさん
05/09/22 02:40:00
シンボルを評価して自分自身が返って来るとしたら、変数はどうするんだろう。
よく判らないけれど、自己評価するシンボルが欲しいとかなら、
Common Lisp で keyword に置き換えておくのが楽じゃないかと思います。

817:デフォルトの名無しさん
05/09/22 02:43:24
>>816
よくわからんが束縛されてない自由変数のデフォルト値って感じなのかな。
keywordにするのは賛成。

818:デフォルトの名無しさん
05/09/22 02:57:26
動的束縛で、foo ≡ (lambda () a) として
(foo) => a、(let ((a 10)) (foo)) => 10
となることを期待するコードがあちこちにあったりすると厄介かも。

819:デフォルトの名無しさん
05/09/22 03:00:03
MuLispって時代的にはCommon Lisp以前だから、動的スコープなんだろうな。

820:デフォルトの名無しさん
05/09/22 04:43:43
...ってことは単純に移植できなくないか?

821:デフォルトの名無しさん
05/09/22 06:48:06
んー、未束縛の場合は自分自身を返す、ってんだったら、
handler-case 使って unbound-variable で捕まえるっていう手もあるかも。
スコープは……とりあえずどっかのパッケージに閉じ込めといて、
do-symbols 使って (declaim (special <... そのパッケージのシンボル全部 ...>))
とかに展開するマクロを書いてロード後に呼んでみるとかで意外と何とかならんかなあ。

822:デフォルトの名無しさん
05/09/22 08:34:14
昔の Lisp ならそれほど大きな言語仕様じゃないだろうから、Common Lisp に
変換するマクロ書いた方が結局早いんじゃないかな。
(atom x) は (atom (if (boundp 'x) x 'x)) とか、動的束縛なら
(let ((var val)) ...) は (let ((var val)) (declare (special var)) ...)
とか変換してくだけだよね。

823:デフォルトの名無しさん
05/09/23 14:18:00
僕には洋書は無理ですた
誰か買いません?
「EXPLORING COMPUTER WCIENCE WITH SCHEME」
ユーズドにしてはかなり綺麗な方だと思う¥5,000でお願い
URLリンク(www.amazon.co.jp)


824:823
05/09/23 14:19:34
×: COMPUTER WCIENCE
○: COMPUTER SCIENCE


825:デフォルトの名無しさん
05/09/23 23:42:10
新品の半額なら考える

826:デフォルトの名無しさん
05/09/24 00:11:42
ほぼ半額に近いね

827:デフォルトの名無しさん
05/09/24 00:48:41
>>823 買いたくなるようなことを書いて

828:デフォルトの名無しさん
05/09/24 15:17:06
>>827
書けるくらい理解したのなら、売らないだろうに、イヂワルなやつだな。

829:デフォルトの名無しさん
05/09/24 19:04:31
世の中、CDを聴いてから(売るんじゃなくて)返品する奴もいるという話だぞ。


830:デフォルトの名無しさん
05/09/24 21:26:13
>>829
ソニンのことか

831:デフォルトの名無しさん
05/09/25 00:22:08
Schemeに静的型対応させた言語が最強だと思うんですが
ありませんか?
なければ作りますが。

832:デフォルトの名無しさん
05/09/25 01:16:43
carやcdrの戻り値はどうするの?
関数型言語みたいにリストの中に単一の型しか入れられないんでは
Lisp系としては不便この上ないし、かといって型チェックが入るんでは
何も変わらんか、型が固定されるだけ不便になる。


833:デフォルトの名無しさん
05/09/25 01:24:50
型変換すればよいのでは。

834:デフォルトの名無しさん
05/09/25 10:11:14
あっちゃこっちゃで型変換しまくりの静的型対応言語ってのもなぁ。

835:デフォルトの名無しさん
05/09/25 10:30:38
基本は型無しで、効率重視の部分では型宣言もできますくらいで
いいんじゃないの?

836:デフォルトの名無しさん
05/09/25 10:41:18
そんな物があったとして、静的型付けな Scheme と SML との間に何を見出すか
によって意見が割れそうだね。

837:デフォルトの名無しさん
05/09/25 13:33:28
経路探索のプログラムの組み方を教えてもらえないですか?
答えでもいいです、よろしくお願いします。

838:デフォルトの名無しさん
05/09/25 13:37:52
スレリンク(tech板:150番)


839:デフォルトの名無しさん
05/09/27 23:48:07
いままで気が付かなかったけれど、
URLリンク(fun.sci.fukuoka-u.ac.jp)
ここの scheme-mode で run-scheme に近いことができるようになってる。

Petite Chez Scheme 7.0で使ってみたところ、問題なく動いた。相当に便利。
まだ荒削りなので、今後に期待。


840:デフォルトの名無しさん
05/09/28 19:46:16
すみませんが、MzScheme で日本語を使うには、どうしたら良いでしょうか?

DrScheme や MrEd では問題なく日本語が使えますが、コマンドプロンプトで
動いているMzScheme だと、与えられる文字コードがWindows_31Jになってしま
うせいか、日本語を入力してもすべて化けてしまうのです。

コマンドプロンプトからUTF-8を与えることができればいいのかと思うのです
が、そこからが分かりません…。


841:デフォルトの名無しさん
05/09/28 21:05:14
Emacs で
(add-to-list 'process-coding-system-alist
'("mzscheme" . utf-8))
しておいて M-x run-scheme とか。

842:840
05/09/28 21:36:05
>>841
申し忘れましたが、私のシステムは Windows(2000, 98)なのです。
できたら>>938の xyzzy の scheme-mode を使いたいと思っています。


843:デフォルトの名無しさん
05/09/28 22:31:29
あまり関係ないけど、xyzzyスレ Part11 に載っていたコード。
xyzzyの sheme-mode はインデントの機能がちょっと貧弱だけど
これを.xyzzy に書くと、lisp-modeと似た感じになる。

; scheme-mode で lis-mode 風のインデントを行う。
(define-key *scheme-mode-map* #\C-m 'lisp-newline-and-indent)
(define-key *scheme-mode-map* #\C-i 'lisp-indent-line)
(setf (get 'define 'lisp-indent-hook) 'defun)


844:デフォルトの名無しさん
05/09/28 23:59:02
wikipediaのラムダ計算のページ
Wikipedia項目リンク

例で
(λx.(λy.(x+y))3)5 → (λy.(3+y))5 とか
λx.(λy.(x+y))3 → λy.(3+y)
とあるんですが、これって正しいんでしょうか?

845:デフォルトの名無しさん
05/09/29 00:24:27
ただしい
だがなぜこんなところに聞くのだ。

まだHaskellスレとかの方がよくないか。



846:デフォルトの名無しさん
05/09/29 01:10:42
xyzzy の Scheme Mode は素晴らしい。これは Scheme のスクラッチ・バッファ
そのものだ。Ctrl+JでS式がSchemeインタプリタに評価されて、結果が次の行
に表示される。自分はずっとこういうのが欲しかった。

今まで Windows98 で動く Scheme 実行環境にはろくなものが無かった。
ChezEdit … NTでしか動かない。
DrScheme … 自分のマシンには重すぎてインストールすらできなかった。
Chez Scheme 付属の PWL … 重すぎて、ただ起動しただけでCPUパワーを使い
きってしまう。

だから結局、素の PetiteChezScheme をコマンドラインから起動し、エディタ
の内容をコピペするしかなかった。

この xyzzy のScheme Mode は、便利で、操作が軽快で、そしてCPUパワーをほ
とんど食わない。自分のような貧乏人には理想のScheme環境だと思う。
matsuoka さん、ありがとう!


847:デフォルトの名無しさん
05/09/29 01:11:56
>>844
ラムダ計算の仕方を全く知らないならちゃんと勉強しろよ。
中途半端に聞いたって仕方がないだろ。

848:デフォルトの名無しさん
05/09/29 01:12:43
>>842
make-process に :incode *encoding-utf8* :outcode *encoding-utf8*
を付け足す感じでどうでしょ。試してないけど。
詳細はリファレンス参照。
URLリンク(hie.s64.xrea.com)
上手くいかなかったら win 板の xyzzy スレで訊いた方がいいかも。

849:842
05/09/29 10:51:10
>>848
ありがとうございます。残念ながら、うまく行きませんでした。
試しに :OUTCODE *encoding-sjis* も試してみましたが、結果は同様でした。
xyzzy スレに行ってみます。


850:デフォルトの名無しさん
05/09/29 14:19:17
>>844
S式で書けば
λx.(λy.(x+y))3 = ((lambda (x) (lambda (y) (+ x y))) 3)
(λx.(λy.(x+y))3)5 = (((lambda (x) (lambda (y) (+ x y))) 3) 5)

これならわかる?

851:デフォルトの名無しさん
05/09/29 15:30:54
さらば slime48

852:デフォルトの名無しさん
05/09/29 19:03:44
>>844
1つ目の方違わね?
(λx.(λy.(x+y))3)5 → (λx.(x+3))5
じゃね?

853:デフォルトの名無しさん
05/09/29 19:23:02
違う
>>844で合ってる

>これって正しいんでしょうか?
# 強いて言えばラムダ計算に中置き演算子がでてくるのが不思議

854:デフォルトの名無しさん
05/09/29 19:31:05
xyzzyのscheme-modeってgosh使えないの?


855:デフォルトの名無しさん
05/09/29 20:04:59
>>854
試してみたけど、Gauche は動かないねえ。

URLリンク(fun.sci.fukuoka-u.ac.jp)
> pscheme を直接呼ぶと結果が帰って来ない(pscheme の STDOUT の扱いの問題)
> Petite Chez Scheme と MzScheme? は全然動く(STDIN/OUT がいけるのは大丈夫)

とあるから、Gauche の STDOUT に問題があるのだろうか?
対処法はわかんない。


856:デフォルトの名無しさん
05/09/29 20:40:52
gosh -i
とか?

857:デフォルトの名無しさん
05/09/29 20:51:01
>>853
ラムダ計算自体はべつに前置記法を要求してるわけじゃないんでは?

858:デフォルトの名無しさん
05/09/29 21:29:42
>>856
うまく行かない。

> xyzzyenv: "C:\Program Files\Gauche\bin\gosh.exe -i ": 指定されたファイ
> ルが見つかりません。
というエラーが出る。


859:858
05/09/29 21:33:02
念のため、.xyzzy のその行を貼る。
(map-slash-to-backslash "C:/Program Files/Gauche/bin/gosh.exe -i ")

こう書くと、前述のエラー。


860:デフォルトの名無しさん
05/09/29 21:34:55
-iまでをパス名と認識してるみたいだが

861:デフォルトの名無しさん
05/09/30 11:02:14
Gauche も動いた。こちらを参照。
xyzzy Part13
スレリンク(win板)l20
ここの27以降。

そしてこちらは、Emacs のscheme-mode風に、評価の結果が run-scheme バッ
ファに表示されるようにする改造。
URLリンク(d.hatena.ne.jp)


862:デフォルトの名無しさん
05/09/30 12:19:13
defunとdefmacroってどう違うんですか?

(defmacro f0 (arg)
 (f1 arg))
という構文があって、
(defun f0 (arg)
 (f1 arg))
と置き換えると、使用されている場所でエラーが出ます。
使用されている場所で、f0 〜をf1 〜に置き換えても同じエラーが出ます。

等価な置換を教えてください(あれば・・・)
mapcarやapplyの中で使われていることは、関係していますか?

863:デフォルトの名無しさん
05/09/30 13:38:50
>>862
マクロと関数の違いを君の言葉で説明しなさい。
それとなぜ置き換えたいと思ったのかもね。
話はそれからだ。

864:デフォルトの名無しさん
05/09/30 16:34:26
>>862
関数とマクロは、似て見えるかもしれないけど、全く別のもの。
とりあえず↓のマクロの解説を読んでみて。
URLリンク(www.geocities.jp)


865:デフォルトの名無しさん
05/09/30 21:20:46
kahuaのインストールができないんですが、ここで聞いてもいいですか?

866:デフォルトの名無しさん
05/09/30 22:46:02
漏れは構わんと思うけどkahuaのMLを避けてわざわざ心ない輩に煽られたいのは何でなん?

867:デフォルトの名無しさん
05/09/30 23:10:10
今年もやるよーん
URLリンク(jp.franz.com)

868:デフォルトの名無しさん
05/10/01 00:45:58
Gauche+emacsでslimeのようなシンボル補完ができないものか

869:デフォルトの名無しさん
05/10/01 02:31:12
俺はシンボル補完よりもeldocぽいやつ+HyperSpecが便利で、schemeにも欲しい。

シンボル補完は、Gaucheには定義されてる全シンボルをとる方法あるんか?ってのと、
変数と関数の区別がないから不便そうだね、ってのがまず思い付く。

SLIMEといえばswank-scheme48がいつごろかに入ったね。
Emacsのscheme用環境というとquackが思い浮かぶけど使ったことないや。


870:デフォルトの名無しさん
05/10/01 20:10:20
Bigloo Development Environment ってどうよ。


871:デフォルトの名無しさん
05/10/02 04:58:12
schemeのマクロを解説したサイトとかないですか?
他のLispのマクロの知識もないんですが…
R5RS読むしかないんでしょうか。


872:デフォルトの名無しさん
05/10/02 08:19:19
>>871
あれはけっこう難関。漏れも今悩んでる。
日本語リソースについては期待しないほうがいいと言っておく。

873:デフォルトの名無しさん
05/10/02 09:01:28
define-syntaxは構文を書くのに向いている。
macroは何でもあり。
コツは概念の理解と慣れること。

874:デフォルトの名無しさん
05/10/02 11:49:06
R5RSには定義だけで概念は書いてないからねえ

875:デフォルトの名無しさん
05/10/02 12:01:19
犬飼さんの入門Schemeにちょっとばっかしマクロの記述あったけど
あれじゃダメかいな。

876:デフォルトの名無しさん
05/10/02 13:19:35
>>871
書籍ならそこそこまともな解説が書いてある場合が多いと思う。

877:871
05/10/02 16:22:34
ありがとうございます。日本語は期待してはいけないんですね…。
とりあえず、犬飼さんのを読ませていただいて、必要ならば、英語も含めてググってみます。

URLリンク(www4.ocn.ne.jp)
URLリンク(okmij.org)
URLリンク(community.schemewiki.org)

ちなみに、(R5RSには明示されていない)概念てどんなのでしょう

878:デフォルトの名無しさん
05/10/03 12:19:19
(define-syntax mac (syntax-rules () ((_ a ... b) '(b a ...))))

Chez Scheme、Dr.Schemeだと動いたけどこれってR5RS的には違法ですよね?
Gaucheだとエラー。

879:デフォルトの名無しさん
05/10/03 21:38:39
>>878
R5RSではダメだが、srfi-46で定義されている。



880:デフォルトの名無しさん
05/10/03 21:55:06
>>879
知らなかった。トンクス

881:本田
05/10/04 13:21:07
>MIT CADR Lisp Machine Source code
URLリンク(www.heeltoe.com)
>Retrocomputing - MIT CADR Lisp Machines
URLリンク(www.heeltoe.com)

882:デフォルトの名無しさん
05/10/06 20:46:51
URLリンク(fun.sci.fukuoka-u.ac.jp)
の Scheme モードで、追加機能の要望が募集されているみたい。

真っ先に欲しいのは、実行の中断(ブレーク)です。
うっかり(tarai 14 7 0) とかやると、延々と止まらなくなってしまうから。


883:デフォルトの名無しさん
05/10/07 06:43:57
>>882
Scheme のプロセス握ってるバッファに切り替えて M-x kill-subprocess でいけません?

884:882
05/10/07 09:44:23
>>883
確かにそうすれば止まりますが、プロセスを殺したくないんです。単に中断し
たいだけなんです。
コマンドプロンプトで MzSchemeを利用している時は、Ctl-C で user break
になります。たしか Petite Chez Scheme も同じ。

xyzzy の Schemeモードでもそれを利用したいんです。



885:デフォルトの名無しさん
05/10/07 13:44:37
個人的にはxyzzyの話はxyzzyのスレか何かでやってほしい

886:デフォルトの名無しさん
05/10/07 15:20:33
募集されてるならそこでやればいい。
wikiのようだしその方が生産的でしょ。

887:デフォルトの名無しさん
05/10/09 21:10:39
emacs の話も emacs スレかどこかでやってくれ

888:デフォルトの名無しさん
05/10/09 21:13:52
>>887
その通りだと思うが、なんか唐突だな。w

889:デフォルトの名無しさん
05/10/09 23:12:35
せっかくだからこの機会に。
整えるときはいっきにやったほうが浸透しやすいじゃない?

890:デフォルトの名無しさん
05/10/10 00:01:17
Lisper の使うEditorとしては
1 . Emacs
2 . Vi
3 . その他
な印象を受けるけど、Viの話題は出ないんだな。

891:デフォルトの名無しさん
05/10/10 01:14:48
OpenMCL 1.0 リリース sage

892:デフォルトの名無しさん
05/10/10 02:05:18
OpenMCL は Mac OS X が x86 に移行した後、どうするんだろうか。
x86 backend を一から作るのかな。

893:デフォルトの名無しさん
05/10/10 17:22:43
>>890
おれバリバリScheme処理系作ってるけどWin厨なんでWZ使ってるよ?
普通EmacsやViなんて変態エディタ使わないでしょ。
あ、変態の反論とかエディタの話題振られてもこれ以上しないから。

894:デフォルトの名無しさん
05/10/10 17:31:04
>>893
出た、言いっぱなし厨!w

895:デフォルトの名無しさん
05/10/10 19:52:51
>>893
Viは確かに普通ではないが、Emacsはいたって普通のエディターだが。
まさか、CUAじゃないから変態とかいってんの?

896:デフォルトの名無しさん
05/10/10 20:35:56
CUAってなあに?

897:デフォルトの名無しさん
05/10/10 22:01:16
GUAの反対に決まってるだろ

898:デフォルトの名無しさん
05/10/10 23:26:47
Vz厨だった漏れからは、Wzなど問題外の紛い物だったな。


899:デフォルトの名無しさん
05/10/11 03:49:37
portable hemlock に guile emacs に、elisp を common lisp / scheme で
置き換えるプロジェクトは尽く上手くいっていないけど、みんな elisp で
満足なのかな。順調なのは xyzzy だけ?

900:デフォルトの名無しさん
05/10/11 04:47:03
そういうことやる人はたいがいEmacsと重なる文化圏の住人なので
・まあ文句はあるけどelispで結構暮らせる
・Emacs自体も開発が進む
・elisp既にたくさん
・Emacsを再び作るのは結構大変
でモチベーションが続かないんじゃなかろうか。

OSやユーザ層でEmacsと重なりにくい部分を選び、その環境に特化することを
特徴の一つとすることでxyzzyは生き延びているように思える。


901:デフォルトの名無しさん
05/10/12 11:56:55
xyzzyがwindowsでそれなりに成功ところから推理すると、
二匹目のどぜうはMacにいると見た。

902:デフォルトの名無しさん
05/10/12 19:44:40
単にUNIXで失敗してるだけだと思うが

903:デフォルトの名無しさん
05/10/12 20:57:42
URLリンク(iiyu.asablo.jp)

SICP第2版の訳について良し悪しで意見が分かれてる。
おまえらの意見は堂よ?

904:デフォルトの名無しさん
05/10/12 21:02:48
>>903
いわゆる「悪い翻訳」ではない。ちゃんと読めるという意味で良い翻訳だと思う。

905:デフォルトの名無しさん
05/10/12 21:24:16
とかなんとかいって興味をひいてアフィリエイトで
儲けようという作戦か?



906:デフォルトの名無しさん
05/10/12 23:01:44
macroさえ使えれば
elispでもqsortが次のように書けるからね。
(defmatch qsort
( (x . xs) -> (append (qsort (lcomp y (y <- xs) (< y x))) `(,x)
(qsort (lcomp y (y <- xs) (>= y x)))))
( () -> '()))
末尾再帰除去の最適化さえあれば。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5279日前に更新/268 KB
担当:undef