06/06/23 10:22:53
過去スレ
Part14: スレリンク(tech板)
Part13: スレリンク(tech板)
Part12: スレリンク(tech板)
Part11: スレリンク(tech板)
Part10: スレリンク(tech板)
Part9: スレリンク(tech板)
Part8: URLリンク(pc5.2ch.net)
Part7: URLリンク(pc5.2ch.net)
Part6: URLリンク(pc3.2ch.net)
Part5: URLリンク(pc3.2ch.net)
Part4: URLリンク(pc.2ch.net)
Part3: URLリンク(pc.2ch.net)
Part2: URLリンク(pc.2ch.net)
Part1: URLリンク(piza2.2ch.net)
2:デフォルトの名無しさん
06/06/23 10:24:33
□参考リンク□
日本Lispユーザ会(日本語)
URLリンク(jp.franz.com)
ここにかなりの情報があります。
URLリンク(jp.franz.com)
削るとAllegro Common Lispのページへ
プログラミング言語Scheme(日本語)
URLリンク(www.sci.toyama-u.ac.jp)
Schemeの人はまずここを見ましょう。
Lisper への道(日本語)
URLリンク(www.geocities.co.jp)
判りやすいLISP入門サイト。
Schemeへの道(日本語)
URLリンク(www.stdio.h.kyoto-u.ac.jp)
ここはschemeの入門サイト。
3:デフォルトの名無しさん
06/06/23 10:25:58
慶応の授業のページ・記号処理プログラミング 2001
URLリンク(buri.sfc.keio.ac.jp)
Practical Scheme(日本語)
URLリンク(practical-scheme.net)
「普通のやつらの上を行け」など、興味深い文書を沢山翻訳されてます。
(Gaucheという完成度の高いscheme処理系作者さんのページでもあります。)
Scheme Hash(英語)
URLリンク(okmij.org)
S式でXMLを使える様にするSXMLなど
John McCarthy's Home Page
URLリンク(www-formal.stanford.edu)
LISPの生みの親、J・マッカーシーのページだそうです。
Association of Lisp Users
URLリンク(www.alu.org)
米国のLispユーザ会
4:デフォルトの名無しさん
06/06/23 10:27:53
□SICP関係□
SICP(英語)
URLリンク(mitpress.mit.edu)
「計算機プログラムの構造と解釈」の原書です。
全てオンラインで読めます。
計算機プログラムの構造と解釈 第二版 (snip) に関連するホームページ
URLリンク(www.ipl.t.u-tokyo.ac.jp)
SICPの回答集
URLリンク(www.melt.kyutech.ac.jp)
URLリンク(pluto.aurorasd.co.jp)
URLリンク(www.ipl.t.u-tokyo.ac.jp)
URLリンク(www.sampou.org)
5:デフォルトの名無しさん
06/06/23 10:29:33
□その他□
Schemeで書かれた正規表現ライブラリ
URLリンク(www.cs.rice.edu)
幻の「入門Scheme」
URLリンク(www4.ocn.ne.jp)
オンラインで読める
各種scheme処理系をcygwin上からビルドする方法など。
URLリンク(www.geocities.co.jp)
Bit - Implantation compacte de Scheme
URLリンク(www.iro.umontreal.ca)
mini-schemeよりも小さい(?)bytecode変換系
Lisp 言語処理系: CAMPUS LIsP, Lemon version
URLリンク(aten.aial.hiroshima-u.ac.jp)
Cコードによるわずか1000行の実装
Cliki
URLリンク(www.cliki.net)
CommonLispのプログラムがたくさん紹介されているのでここを当たるべし。
6:デフォルトの名無しさん
06/06/23 10:30:46
encyCMUCLopedia
URLリンク(www.isr.ist.utl.pt)
cmucl以外でも有益なはず
CMUのLisp Repository
fURLリンク(ftp.cs.cmu.edu)
新旧様々なプログラムが置いてある
Tiny CLOS Tutorial
URLリンク(home.adelphi.edu)
Schemix
URLリンク(www.abstractnonsense.com)
Linuxのkernelへのパッチで、/dev/として扱えるTinyScheme
Bibliography of Scheme-related Research
URLリンク(library.readscheme.org)
Scheme関連の論文リンク集
7:デフォルトの名無しさん
06/06/23 10:46:55
その他よさそうなリンク
awkで書かれたわずか500行のLispインタプリタ
awklispを読めばLispが理解できる
URLリンク(www.accesscom.com)
Emacs Lisp 2
スレリンク(tech板)
* Hotdog Scheme URLリンク(rover.cs.nwu.edu)
MS が金出してたみたい
* Bigloo URLリンク(www-sop.inria.fr)
CLR 用のコードを吐けるようになったらしい
継続
なんでも継続
URLリンク(practical-scheme.net)
Schemeへの道:継続
URLリンク(www.stdio.h.kyoto-u.ac.jp)
継続の使い方
URLリンク(www.geocities.co.jp)
継続の使用法
URLリンク(www.ice.nuie.nagoya-u.ac.jp)
CPS(継続渡しスタイル)の説明
URLリンク(www.csl.sony.co.jp)
Kahua: 継続ベースのアプリケーションサーバー
URLリンク(www.kahua.org)
8:デフォルトの名無しさん
06/06/23 10:50:50
仕様関係)
CLtL2: Common Lisp the Language 2nd edition
URLリンク(www-2.cs.cmu.edu)
CLHS: Common Lisp Hyper Spec
URLリンク(www.ai.mit.edu)
R5RS: Revised(5) Scheme(ja)
URLリンク(www.sci.toyama-u.ac.jp)
便利な情報リソース)
The Common Lisp Cookbook: いわゆる Cookbook
URLリンク(cl-cookbook.sourceforge.net)
小さい実装)
SECDR-Scheme: SECD machine model に基づく実装
URLリンク(lily.fan.gr.jp)
Minischeme: 1 ファイルに凝縮された Scheme 処理系
URLリンク(tinyscheme.sourceforge.net)
TinyScheme: Minischeme を色々弄ったもの
URLリンク(tinyscheme.sourceforge.net)
KI-Scheme, AM-Scheme, etc...
URLリンク(www.nifty.com)
LispMe: Palm 上で動く Scheme 処理系. これも SECD virtual machine.
URLリンク(www.lispme.de)
9:デフォルトの名無しさん
06/06/23 10:55:26
LISP Scheme Part9 (html化)
URLリンク(ruku.qp.tc)
独習 Scheme 三週間
URLリンク(www.sampou.org)
Schemeの教科書
よろずや
URLリンク(www.geocities.co.jp)
lispの実用的な情報が色々。
Common-Lisp.net: 多くのプロジェクトがホスティングされてる
URLリンク(common-lisp.net)
Bill Clementson's Blog: Lisp関連の話題が中心のBlog
URLリンク(home.comcast.net)
Practical Common Lisp: S式の羅列で現実的な問題をどう解くのかそのギャップに悩まされてる人に
URLリンク(www.gigamonkeys.com)
10:デフォルトの名無しさん
06/06/23 10:57:43
テンプレ、以上です。
11:デフォルトの名無しさん
06/06/23 19:51:31
ォッ
12:デフォルトの名無しさん
06/06/24 02:33:35
イカすスレタイ乙
13:デフォルトの名無しさん
06/06/24 13:26:20
乙
14:デフォルトの名無しさん
06/06/24 20:48:38
(乙)
15:デフォルトの名無しさん
06/06/24 22:19:08
(defun 乙 ()
(message *乙*))
16:デフォルトの名無しさん
06/06/24 22:25:39
(define exit-k '())
(call-with-current-continuation (lambda (k) (set! exit-k k)))
(define 乙
(lambda ()
(k (lambda () (display "乙!") (newline)))))
17:デフォルトの名無しさん
06/06/24 22:48:15
>>16
まわりくどい人キタ!
18:デフォルトの名無しさん
06/06/24 22:51:26
>>14がすべて悪いw
19:デフォルトの名無しさん
06/06/25 05:24:15
>>16 が継続渡しに失敗している件について。
20:デフォルトの名無しさん
06/06/25 11:09:06
(begin
(display (call/cc (lambda (c)
(set! exit-k c)
">>1")))
(newline))
(exit-k "乙!")
こうですか!わかりません!
21:デフォルトの名無しさん
06/06/25 23:02:51
トップレベルまたいじゃだめだろ
22:デフォルトの名無しさん
06/06/26 23:37:09
箱の中に手を入れたり、放り込む感じはないけど、car、cdr、
cons は、まだ逐次的にしている感が否めない。
(集合の定義でいいんじゃ……。)
あらゆる問題に対処する慣れの時間を削減する言語の進化!
23:デフォルトの名無しさん
06/06/27 00:08:10
>>22
とりあえずそれはLispじゃないので、勝手に俺言語でも作ってやってください
24:デフォルトの名無しさん
06/06/27 17:13:43
最近Gaucheをいじり始めて、とりあえず独習Scheme3週間を流し読みしたxyzzy使いなんだが、
初心者がいじって遊べるSchemeのプログラムって何がある?
今はWiLiKiのソースを読んでみてるんだが、ちょっと量が多すぎる気がする。
25:デフォルトの名無しさん
06/06/27 18:44:56
漏れはWiLiKiにマクロを追加してみたりして遊んだ。
メモできるカレンダーとか。
26:デフォルトの名無しさん
06/06/27 18:45:27
>>24
どこに埋もれたか忘れたが、大学院時代、ゼミの課題で、自分で自分を実行できる
Schemeのサブセットを作ったことあるなぁ。徹底的に文法を削って、200行未満に
収めてしまった。
(define my-scheme
(lambda ()
(eval (read))
(my-scheme) ))
(my-scheme)
ではないよ。ちゃんと環境も作った。プリミティブとクロージャは、大元のやつを
使ってさぼったけど。課題として面白いと思うんだけど、どうかなぁ。
27:24
06/06/27 19:12:50
書き込んだ後でScheme Topicsを見つけて、
「あーこの中で簡単なのから読めばいいかな」とか思ってました。
URLリンク(www.shiro.dreamhost.com)
これ読みながらWiLiKiを弄ってみることにします。
>>26のお題は悟りを開いてから考えます。
28:デフォルトの名無しさん
06/06/27 22:42:13
Scheme のサブセットってどこら辺まで許されるかな。
遅延評価は削っても良さそうだけど、継続はダメかな。
29:デフォルトの名無しさん
06/06/27 23:08:19
>>28
R5RSなんて小さい規格なんだから、一つでも削るならSchemeと呼んで欲しくない。
あれ以上削ったらただの「俺言語」だ。
30:デフォルトの名無しさん
06/06/27 23:16:12
>>29
Sussman と Steele の言語が Scheme じゃないとでも?
R^nRS 名乗らないなら
* レキシカルスコープ
* 末尾呼び出しの最適化
* 変数と関数が同じ名前空間
くらいでいいんじゃない?
31:デフォルトの名無しさん
06/06/27 23:18:06
>>30
それは単なる 1-Lisp の一種だろ
32:デフォルトの名無しさん
06/06/28 01:06:29
>29
「scheme のサブセット」なんであって scheme だとは書いてないでしょ。まぁ
でも継続はあってほしいかも。
33:デフォルトの名無しさん
06/06/28 01:13:46
>>32
それを言ったらどんな言語だってSchemeのサブセットのスーパーセットだよw
個人的には継続のない言語をSchemeと呼ぶのは大きな違和感がある
34:デフォルトの名無しさん
06/06/28 06:02:20
numeric tower とかマクロとか
35:デフォルトの名無しさん
06/06/28 06:04:37
(E E*)の形で関数適用が書けて、レキシカルスコープならschemeでいいや。
36:デフォルトの名無しさん
06/06/28 07:41:59
新しいの出てるね
URLリンク(www.schemers.org)
top-level が library になったり、call/cc や when, unless がデフォルトになったり...
UNICODE サポートはどうなるんでしょうね
37:デフォルトの名無しさん
06/06/28 07:43:32
R1RSってどんだけちっちゃかったの?
38:デフォルトの名無しさん
06/06/28 08:45:45
square brackets([])はなくならないんだろうなあ……なんかやだ。
39:デフォルトの名無しさん
06/06/28 10:26:21
R6RS> All definitions and expressions must appear within a library form; R6RS has no notion of a top-level definition or expression.
ま、中途半端よりはいいかもしれんが.... 微妙だ。
40:デフォルトの名無しさん
06/06/28 17:06:50
>>38
同意
41:デフォルトの名無しさん
06/06/28 18:52:20
common-lisp.net 死んだ?
42:デフォルトの名無しさん
06/06/28 20:28:29
square bracketsって誰の趣味?
なんでR6RSにこれが入るの決定なのか知ってる?
43:デフォルトの名無しさん
06/06/28 21:05:38
その議論は2年前に終ってる。なぜお前はその時ちゃんと反対しなかったんだ?
44:デフォルトの名無しさん
06/06/28 21:08:10
>>43
ポインタキボンヌ
45:デフォルトの名無しさん
06/06/28 21:57:58
web上にいいのがないが、とりあえず去年の3月には投票済み。
URLリンク(www.schemers.org)
> We have voted on a number of the decisions listed in the Revised R6RS
> Status Report. Among the minor but visible decisions made are:
> :
> - add balanced square brackets as a synonym for parentheses
46:デフォルトの名無しさん
06/06/28 23:11:46
>>39
これ良く分からなかったんだけど、全部 (library <lib-path> <language> <body>) で
書くようにしたいって事だよね。今までみたいに REPL から自由に式を入力出来る形ではなく。
で、(library "main" ...) が entry point になると...
47:デフォルトの名無しさん
06/06/28 23:59:25
失礼します。
Windows2000にDrScheme(version350)を入れて日本語の設定をしたのですが、
ボタンや本文の文字がうまく表示できません。
このようになります↓
URLリンク(www.42ch.net)
(定義欄に入力しているのは、(string-length "ほげ")です)
メニューの編集-環境設定-フォントでフォントをMSゴシックにしています。
その他は色の設定しか変更していません。
Windowsのフォントキャッシュを作り直してみましたが改善しませんでした。
原因や解決法に思い当たる事があればお教え願います。
48:デフォルトの名無しさん
06/06/29 02:51:24
言語を英語にして縦書きの日本語フォントを使うw
49:デフォルトの名無しさん
06/06/29 07:37:18
フォントじゃなくて文字コードの設定のような気がする
何かが「Latin-1」か「ASCII」になってるんじゃないか?
50:デフォルトの名無しさん
06/06/29 19:15:19
guile schemeでeval関数ってどうやって使うのでしょうか?
gauche schemeなら
(define environment #t)
(define initialenv '())
(set! environment (eval '(define a 2) initialenv))
って感じで使えるんだけど…
guileで同じようにやっても、evalの第二引数の型が違うってエラーになっちゃう。
51:47
06/06/29 22:04:01
ありがとうございます。解決法は見つかりませんでしたが、
・縦書きフォントなら表示できる
・中国語・朝鮮語フォントも表示できる(「々」が出ないものが多い)
・BDF UM+は大丈夫
のようなので、その範囲で使う事にします。
>>48
そうすることにします。
>>49
UnicodeフォントのはずのMSゴシックが使えないことに疑問が残りますが、
BDF UM+では表示できたのでそうではないようです。
52:デフォルトの名無しさん
06/06/30 12:59:13
>>50 それは動く Gauche の方が変なのでは。R5RS 的には、eval の
第二引数は、(interaction-environment), (scheme-report-environment 5),
(null-environment 5) のいずれかでなければならない。
なさりたいことを拝察するに、こういうことかと。最初の行をとれば、Gauche
でも動くはず。
(use-modules (ice-9 r5rs)) ;; R5RS をguile で使えるようにする。
(define env (null-environment 5))
(eval '(define a 2) env)
(eval 'a env)
53:50
06/06/30 13:27:21
>>52
おーできた、ありがとう!
54:デフォルトの名無しさん
06/07/02 16:26:34
携帯(例えばiアプリ)上で使えるSchemeってないのかな?
55:デフォルトの名無しさん
06/07/02 17:12:21
携帯単体ではさすがにキツイべ
逆立ちしてもメモリが足りねえよ
56:デフォルトの名無しさん
06/07/02 18:55:59
>>55
heapとして扱えるメモリは意外とあるんだよ、ないのは実行コードエリアとしての容量なんだよね。
だが所詮iAppli
57:デフォルトの名無しさん
06/07/02 19:03:06
そうか~。やっぱし携帯ではきついものがあるのか。
58:デフォルトの名無しさん
06/07/02 19:38:30
コードをネット上から読み込んで動作するようにすればどうだ?
携帯Javaでそんなことが出来るか知らんけど。
そしてそこまでするならCGIとかでもいいかもしれんが。
59:デフォルトの名無しさん
06/07/02 19:43:36
携帯の上でSchemeインタプリタを動かすかどうか別にして、そういう制限環境向けの
プログラムジェネレータをLisp系の言語で書くという発想は面白いかもしれない。
60:デフォルトの名無しさん
06/07/03 12:20:49
つ URLリンク(www.okisoft.co.jp)
61:デフォルトの名無しさん
06/07/03 15:28:51
(display '(a b "cd\n"))
ってやると
(a b cd
)
って表示されちゃうんだけど、
本当は
(a b "cd\n")
というふうに元の形のまま出力させたい。
どうしたらいいんでしょうか?
自分で元の形のまま出力する関数を定義するしかない?
それともschemeにそういう関数がもとから備わってる?
(write '(a b "cd\n"))
でも出力は
(a b "cd
")
で\nが改行に変わってしまってだめだった。
62:デフォルトの名無しさん
06/07/03 15:49:06
\\
63:デフォルトの名無しさん
06/07/03 19:54:55
\\
じゃだめで、
エスケープしなくてもそのままの形でS式の中のstringを表示させたいんだけど。
64:デフォルトの名無しさん
06/07/03 20:01:50
goshでwriteだと\nて出た
65:デフォルトの名無しさん
06/07/03 20:02:08
'(a b "cd\n")
ならばそのまま
(a b "cd\n")
と。
'(a b "cd\\n")
ならばそのまま
(a b "cd\\n")
と表示させたいんです。説明足らずですみません。
66:デフォルトの名無しさん
06/07/03 20:06:56
>>64
goshだと確かに\nって出ますね・・・
でもguileだとダメだ・・・
処理系依存なのか・・・
guile用には自分で定義するしかないかなぁ。
67:デフォルトの名無しさん
06/07/03 20:09:36
writeはreadできるように書き出せば良いので、どちらの処理系も間違いではないのだろうな
68:デフォルトの名無しさん
06/07/03 22:39:49
guile だと \n は read した時点で改行になってるっぽい。
write の代替書くとかいう方法じゃ解決できなそうだね。
(string-length "\n")
=> 1
(equal? "\n" "
")
=> #t
69:デフォルトの名無しさん
06/07/03 22:49:25
readした時点で改行文字になるのは当然。
問題はwriteが文字列中の改行文字をどう出力するかだよ。
70:デフォルトの名無しさん
06/07/03 23:05:06
つまり、どうやっても「元の形のまま」出力することはできないってことでいいのかな。
改行と \n が区別できないってことは、両方含む文字列はどっちかが変換されちゃう。
71:デフォルトの名無しさん
06/07/03 23:09:31
>>70
致命的な勘違いをしてないか?
72:デフォルトの名無しさん
06/07/04 00:51:39
確かに何か勘違いしてるっぽいけど...
ASCII コードで 32 以下なら ¥ でエンコードし、
それ以外はそのまま表示するような display/write もどきを
自前で書き起こすというのはダメ?
73:デフォルトの名無しさん
06/07/04 02:20:49
>>72
こんな質問をする奴にそれを進めても、自分が何やってるか理解できずに今度は
"ab
cd"
が
"ab\ncd"としか出力できません
という質問がされる悪寒。
74:61
06/07/04 03:53:56
改行を\nと出力する自前の関数を定義するっきゃなさそうですね。
今やろうとしてることでは
"ab
cd"
なんていう入力は想定しなくていいので問題ないです。
ありがとうございました。
75:デフォルトの名無しさん
06/07/06 00:13:02
schemeで
関数のリストfuncsと、データのリストdatasがあって、
funcsのn番目を、datasのn番目に適用してくれる関数ってない?
再帰使ってちょこちょこっと書けばいいんだけど。
(define funcs '(func1 func2 func3))
(define datas '(a b c))
(hoge funcs datas)
=>((func1 a) (func2 b) (func3 c))
みたいになるやつ。
76:デフォルトの名無しさん
06/07/06 00:50:54
map apply すりゃいいんじゃないの
ところで data は複数形だぞ。単数形は datum。
77:デフォルトの名無しさん
06/07/06 00:59:41
datasわろす
78:デフォルトの名無しさん
06/07/06 01:18:47
URLリンク(koders.com)
79:デフォルトの名無しさん
06/07/06 06:22:48
>>75
(zip funcs datas)
=> ((func1 a) (func2 b) (func3 c))
80:デフォルトの名無しさん
06/07/06 07:25:35
例の戻り値が不適切っぽいのはともかく、適用したいってんだから、
(map (cut <> <>) funcs datas)
じゃないかな。
81:デフォルトの名無しさん
06/07/10 17:44:09
(set! a '(0 1 2 3 4 5))
があるとして、配列 a の後ろから二番目の値、この場合は4を取り出す方法を教えてください
(car とか cdr とかわかんねー。どうやったら後ろから二番目の値を取れるのか・・・)
82:デフォルトの名無しさん
06/07/10 17:47:34
(list-ref a (- (length a) 2))
83:デフォルトの名無しさん
06/07/10 17:50:01
=> (list-ref a (- (length a) 2))
ERROR: unbound variable (errobj list-ref)
--
すまん、今使ってるのは script-fu uyq@
84:デフォルトの名無しさん
06/07/10 17:58:46
(define (list-ref lis idx)
(if (= idx 0) (car lis) (list-ref (cdr lis) (- idx 1))))
85:デフォルトの名無しさん
06/07/10 17:58:47
(define list-ref
(lambda (ls position)
(if (= position 0)
(car ls)
(list-ref (cdr ls) (- position 1)))))
--
ググったら↑みたいのが出てきた。
これで script-fu でも list-ref が使えるらしい。
マンドクセからこれ使おうっと
86:デフォルトの名無しさん
06/07/11 00:13:08
(cadr (reverse a))
87:デフォルトの名無しさん
06/07/11 16:08:25
carやcdrは判っておいたほうがよい。
リストの構造を紙に書いて考えるんだ。
88:デフォルトの名無しさん
06/07/11 17:19:13
ずいぶん前だけど、かなりemacs lisp関連のコードを
コントリビュートしてる人が、consセルって何?みたいな
話しててたまげた。
carとかcdrもS式で表現されたリストに対する操作として
理解してたらしい。
そういうのもありなんだとある意味感動した。
89:デフォルトの名無しさん
06/07/11 17:47:49
caddrとかの言い回しは気にならなかったのかな
90:デフォルトの名無しさん
06/07/11 17:55:22
>>88
そんな香具師のcontributeしたelispコードなんて使いたくねーな
91:デフォルトの名無しさん
06/07/11 19:20:14
実際セル知らなくてもS式だけで完結しちゃうだろ。
92:デフォルトの名無しさん
06/07/11 23:07:34
alist もリストのリストにするのか?
問題はないけど何か無駄な感じ
93:デフォルトの名無しさん
06/07/11 23:30:01
alistはリストのリストにすること多いけどな。
92は後からデータが追加されるときにcdrをcadrにいちいち書き換えるのか?
94:デフォルトの名無しさん
06/07/11 23:50:35
点対とかどうやって理解してるのか興味あるな
まぁアセンブラ書いたこと無い奴のCプログラムみたいなもんなんだろうな
95:デフォルトの名無しさん
06/07/12 00:10:20
consを廃止すればドット対作れなくね?
listで良くね?
96:デフォルトの名無しさん
06/07/12 00:12:14
先頭に1個付けたいときどうするの?
97:デフォルトの名無しさん
06/07/12 00:21:35
リストの共有状態とかも理解してない悪寒
98:デフォルトの名無しさん
06/07/12 00:49:28
>>93
cadrは何か半端で嫌いだ。
cdrだとビシッとした感じでカッコいいよ?
99:デフォルトの名無しさん
06/07/12 01:31:09
>>95
R6RS 方面でそんな話題も出てるみたいね。
といってもさすがに cons 廃止じゃなくて、
cons の第二引数を list に限定しましょうって話だけれど。
↓の 5. Mutability of pairs の最後の段落参照。
URLリンク(www.schemers.org)
100:デフォルトの名無しさん
06/07/12 01:36:41
>>99
うへぇ
101:デフォルトの名無しさん
06/07/12 21:07:41
SBCL 最新リリースで Solaris と Mac OS X もネイティブスレッド対応されたみたいだね。
Mac は experimental みたいだけど。
URLリンク(sbcl.sourceforge.net)
102:デフォルトの名無しさん
06/07/13 00:48:19
自分、Scheme、特にDrSchemeがものすごい
スキなんですけど、Schemeのプログラマー募集してる
会社って皆無ですよね。なんで?
exe作れないから?
実用性ゼロだから?
103:デフォルトの名無しさん
06/07/13 00:55:06
>>102
Schemeでできるような面白い仕事を人に回したくないからだよ
104:デフォルトの名無しさん
06/07/13 09:33:51
我らが教祖様がインタビューに答えているぞ。
URLリンク(japan.cnet.com)
105:デフォルトの名無しさん
06/07/13 11:40:39
(defun power (x y)
(loop with i = 0 with tmp = 1
do
(when (>= i y) (return tmp))
(setq i (+ 1 i))
(setq tmp (* tmp x))
))
この式をsetqを使わない方法でやるのってどうやるんでしょうか?
106:デフォルトの名無しさん
06/07/13 11:47:47
CL-USER> (defun power (x y)
(setq i 0)
(setq tmp 1)
(loop
(if (>= i y)(return tmp))
(setq i (+ 1 i))
(setq tmp (* tmp x))
))
POWER
CL-USER> (power 3 2)
9
間違えました、こっちの式です
107:デフォルトの名無しさん
06/07/13 12:17:52
(defun power (x y)
(labels ((fuga (x y z)
(if (zerop y)
z
(fuga x (1- y) (* z x)))
))
(fuga x y 1)))
もしくは
(defmacro power (x y)
`(expt ,x ,y))
もしくは
(setf (symbol-function 'power) #'expt)
108:デフォルトの名無しさん
06/07/15 19:35:16
DrSchemeでdoに相当するものを教えてください。
まさかないことはないと思うので・・。
109:デフォルトの名無しさん
06/07/15 19:48:14
仮に無くても5分で作れるだろ
110:デフォルトの名無しさん
06/07/15 20:26:27
>>108
メニュー -> 言語 -> 言語の選択 -> r5rsなどを選択
111:デフォルトの名無しさん
06/07/15 21:36:36
>>110
ありがとうございます。
teaching languageを使ってました。
>>109
時間があるときに考えてみます。
112:デフォルトの名無しさん
06/07/15 22:10:55
(symbol-append 'a 'kuuhaku 'b) -> a b
となるような「kuuhaku」の部分の書き方はどうすれば良いですか?
113:デフォルトの名無しさん
06/07/15 22:33:30
(define (symbol-append . symlist)
(string->symbol
(apply string-append
(map
(lambda(sym)
(if (eq? sym 'kuuhaku)
" " (symbol->string sym))) symlist))))
114:デフォルトの名無しさん
06/07/16 01:26:28
common lisp なら | | か \ かな。(intern " ") でもいいけど。
115:デフォルトの名無しさん
06/07/16 01:47:45
>>113
ちょっとよく分かりません。申し訳ないです。
>>114
ありがとうございます。それで上手く行きそうです。
116:デフォルトの名無しさん
06/07/16 19:43:13
DrSchemeで微分プログラムに挑戦してんだけど、
自分だけだと行き詰る。参考HPとかある?
117:デフォルトの名無しさん
06/07/16 20:17:15
ちょっと調べたけど、そのものずばりのwebpageは無さそうだね。
どこで行き詰ってるのか具体的に書けば、なんらかのアドバイスが出てくると思うよ。
まさか数値解析から教えてくれなんて事じゃないよねw
118:デフォルトの名無しさん
06/07/16 20:20:43
xをn乗回かけるプログラムをSchemeで書くとどうなる?
119:デフォルトの名無しさん
06/07/16 20:26:08
schemeって何?
120:デフォルトの名無しさん
06/07/16 20:27:01
スチームっていう発音でいいの?
121:デフォルトの名無しさん
06/07/16 21:05:57
(define (expt x n)
(if (= n 0)
1
(* x (expt x (- n 1)))))
122:デフォルトの名無しさん
06/07/16 21:08:47
人工知能の第一人者J・マッカーシー氏に聞く--AI研究、半世紀の歴史を振り返る
URLリンク(japan.cnet.com)
123:デフォルトの名無しさん
06/07/16 22:53:20
>>116
微分のプログラムは難しいよ。
参考になるサイトはないと思う。
124:デフォルトの名無しさん
06/07/16 23:04:41
数値微分なのか数式微分かくらいかかにゃアドバイスできんがね
125:デフォルトの名無しさん
06/07/17 02:19:13
>>121
デファインしないとだめなのか。
もし、nが0だったら、
1を返しなさい。
それ以外だったら、
(n-1)を実行して、
それとXを掛けて、、
あーーーーーわかんなくなった
126:デフォルトの名無しさん
06/07/17 02:31:55
defineしなくてもnamed-letやY-Combinatorでも書けるでしょ
127:デフォルトの名無しさん
06/07/17 03:17:31
URLリンク(tkoolup.hp.infoseek.co.jp)
日本語版ダウンロードしたら文字化けします
128:デフォルトの名無しさん
06/07/17 10:20:26
>>116
SICP嫁
129:デフォルトの名無しさん
06/07/19 00:14:10
引数任意(一個以上)な関数はどうすれば定義できますか?
130:デフォルトの名無しさん
06/07/19 00:15:43
>>129
&restなど
131:デフォルトの名無しさん
06/07/19 00:18:10
>>129
ラムダリストで調べれ。
132:デフォルトの名無しさん
06/07/19 01:23:30
>>130-131
どうもです。
133:デフォルトの名無しさん
06/07/19 02:07:29
ハーフライフ1で、やたら
λ(ラムダ)
って用語が出てくるんだけど、体験版やってみたら、
スタート地点から、ゴールまで行って、
またそこからスタート地点までわざわざ
戻ってくるんだよね。マラソンの折り返し地点みたいに。
なんでラムダラムダ言ってたのか、ようやくわかるというわけ。
この開発者、たぶんLispかスキームが好きなんだとおもうよ。
134:デフォルトの名無しさん
06/07/19 09:01:03
>>133
なんだかさっぱりわからないのですが、ゲームか何かの話?
135:デフォルトの名無しさん
06/07/19 10:03:39
単にΛの字面から来てるんじゃないのか?
136:デフォルトの名無しさん
06/07/19 10:08:48
「ラムダ」でググってたら、実は世の中は隠れLispマニアでいっぱいだということがわかったw
137:デフォルトの名無しさん
06/07/19 12:10:39
Half-Lifeのλは半減期(Half-Life)から来てるんじゃね?
Lispとは関係ない気がする。
138:デフォルトの名無しさん
06/07/29 19:43:32
数式微分わからん。SICP通りにやっても動作しないけど。
ほかに参考になるサンプルソースはないのか?
139:デフォルトの名無しさん
06/07/29 19:45:21
>>138
微分には挑戦したことないからわからない。
参考図書とかあればこんど探してくるよ。
140:デフォルトの名無しさん
06/07/29 19:46:03
>>139
サンクス。
141:デフォルトの名無しさん
06/07/29 19:48:21
>>138
微分のコードは書いたことないからわからない。
SICPに書いてあるけどよくわからない。
142:デフォルトの名無しさん
06/07/30 03:23:57
>>138
SICPでぐぐるとコードが落とせるところが引っ掛かるから
それ使ってやってみれ。それでダメなら何か根本的に勘違いしてる。
143:デフォルトの名無しさん
06/07/30 06:43:12
URLリンク(lispuser.net)
Windows で CLISP + SLIME + Tcl/Tk キターーーー
144:デフォルトの名無しさん
06/07/30 14:16:26
Tcl までついてくんのか……
145:デフォルトの名無しさん
06/07/30 14:39:11
たしかにTclはいらんなw
146:デフォルトの名無しさん
06/07/30 18:55:59
つかlisperがwindowsって違和感。
PC Unix か Mac OS X つかおうぜ
147:デフォルトの名無しさん
06/07/30 19:00:00
むしろ Windows が VMS だと考えるんだッ
148:デフォルトの名無しさん
06/07/30 19:01:52
頭のなかでVMSとMVSがけっこう混ざってる
149:デフォルトの名無しさん
06/07/30 19:28:34
>>146
んなこと言ってると喰えないのだ
150:デフォルトの名無しさん
06/07/30 19:29:38
cygwin上ならセフセフ
151:デフォルトの名無しさん
06/08/02 11:26:56
practical common lispってなんであんなにloopばっか使ってんのかね?
mapcarとかで済みそうなものも徹底してloopしか使わない……
152:デフォルトの名無しさん
06/08/02 23:53:51
guileで
(use-modules (ice-9 r5rs))
(define env1 (scheme-report-environment 5))
(define env2 (scheme-report-environment 5))
(eval '(define a 3) env1)
としておいて、
(eval 'a env1)
を評価すると3になるんだけど、
(eval 'a env2)
を評価しても結果が3になってしまう。
つまりenv1とenv2は同じオブジェクトってことになってしまっている。
env1の中での環境の変化をenv2には影響させない方法ってありませんか?
153:デフォルトの名無しさん
06/08/03 00:23:14
にるぽ
154:デフォルトの名無しさん
06/08/03 00:46:53
かー
155:デフォルトの名無しさん
06/08/03 01:26:29
>>152
いまいちやりたいことがわからんが・・・
scheme-report-environmentはR5RSで定義されてるバインドだけ持った環境を返すだけで
返してきた環境の中に新たにバインドつくるとかはできないんだぜ?
156:デフォルトの名無しさん
06/08/03 07:46:45
いや、それがやりたいんだと思うよ。
R5RSに出来ないと書いてあるのにできちゃうevalってのも不親切といえば
不親切ではあるかも知れない(が、エラーにしちゃうとそれも不便だろうな)。
R5RSより:
-- procedure: eval expression environment-specifier
Evaluates EXPRESSION in the specified environment and returns its
value. EXPRESSION must be a valid Scheme expression represented
as data, and ENVIRONMENT-SPECIFIER must be a value returned by one
of the three procedures described below. Implementations may
extend `eval' to allow non-expression programs (definitions) as
the first argument and to allow other values as environments, with
the restriction that `eval' is not allowed to create new bindings
in the environments associated with `null-environment' or
`scheme-report-environment'.
157:デフォルトの名無しさん
06/08/04 03:18:49
LispWorks5.0出荷されてますね。
URLリンク(www.lispworks.com)
158:デフォルトの名無しさん
06/08/04 22:05:05
>>144
なにかと思ったら LTK 動かすためなんじゃね?入門を目指すならいいん
じゃないかな。むしろ「GUI もできます… Tcl/Tk を入れれば」は初心者
には引かれるだろ。よく言われる
- フリー
- ANSI Common Lisp (MOP, Gray Stream などデファクトスタンダード含む)
- Windows 用
- .exe が作れる
- GUI がつかえる
は満せつつあるんだねー。でもドキュメントが足りない気がする。
159:デフォルトの名無しさん
06/08/05 05:32:30
R5RSって「あーるごあーるえす」って読むの?
160:デフォルトの名無しさん
06/08/05 07:48:41
うん。
161:デフォルトの名無しさん
06/08/05 22:50:40
>>158
Tkは解るけど、Tclっているのん?
162:デフォルトの名無しさん
06/08/06 00:28:18
Tkは言語中立なGUIツールキットなんかじゃないよ。
163:デフォルトの名無しさん
06/08/06 00:35:21
>>161
Tk needs Tcl.
164:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
06/08/06 00:40:49
Perl/TkやRuby/Tkが流行る当たり、Tclの言語としての駄目さ加減がわかるな。
165:デフォルトの名無しさん
06/08/06 12:42:45
ここで Tcl を叩くのはスレ違いだと思うが…。
Ruby/Tk も Tcl 要るよ?Python の Tkinter も Tcl 要るし。名前の印象にダ
マされてる? Perl/Tk だけが自力で Tk とのバインディングを持ってる。
166:デフォルトの名無しさん
06/08/06 13:23:13
でもTclが嫌いでTcl/Tkを避ける奴は多いと思う
実際には他言語のバインド使うならほとんどTclの知識は要らないんだけどね
167:デフォルトの名無しさん
06/08/06 14:11:35
最近 Lisp はじめたんですけど,Perl/Tk みたいに結局インターフェースは
Tcl っぽくなってしまうような気がしますね。Perl/Tk は流行してないと思い
ますが…最近あまり動きないですし。
168:デフォルトの名無しさん
06/08/06 14:48:50
Tclは一つの言語というより、可搬式コマンドラインツールセットというべきかと。
比較対象としてはPerlやRubyより、Dosemuやcygwinに近い
169:デフォルトの名無しさん
06/08/06 14:55:54
tclはシェルの一種だよ。
170:デフォルトの名無しさん
06/08/06 20:10:45
歴史長い割に普及してないね。
やっぱUNIXのGUIってセンスがダメなのよね。
171:デフォルトの名無しさん
06/08/06 21:19:27
・・・え?
172:デフォルトの名無しさん
06/08/07 01:38:00
UNIXのGUI(笑)
173:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
06/08/07 01:41:17
QtやGtkのバインディングってないの?
174:デフォルトの名無しさん
06/08/08 23:13:00
ググるという行為を知らんのかね?
URLリンク(www.cliki.net)
175:デフォルトの名無しさん
06/08/09 01:14:49
ググらせるという行為を知らんのかね?
176:デフォルトの名無しさん
06/08/09 01:17:41
知らん
177:デフォルトの名無しさん
06/08/16 00:43:19
Schemeのわかりやすい、楽しい本ってなんでないの?
178:デフォルトの名無しさん
06/08/16 00:45:26
>>177
君が何を読んでも楽しさを感じられない人間だからだと思う
179:デフォルトの名無しさん
06/08/16 00:49:17
>>178
お前の家族を明日殺す
180:デフォルトの名無しさん
06/08/16 00:51:31
キタ━━(´・ω・`)━━・・・
181:デフォルトの名無しさん
06/08/16 02:47:33
>>179
一応警察に通報しておく
182:デフォルトの名無しさん
06/08/16 09:16:43
>>177
Little Schemerかのう・・・軽く読めるんけど、楽しいかというとびみょ
183:デフォルトの名無しさん
06/08/16 20:16:06
EoPL第2版がおすすめだ。
184:デフォルトの名無しさん
06/08/16 22:31:52
「リスト遊び」をschemeに翻訳するとか。
最近俺がやってる遊びだが。
185:デフォルトの名無しさん
06/08/17 17:11:50
院試でSchemeの問題が…
orz
186:デフォルトの名無しさん
06/08/17 18:09:51
それは喜ぶところじゃないのか
187:デフォルトの名無しさん
06/08/17 18:17:43
うーん。普段Schemeのプログラムはちょっとは書いてるつもりだったし、最初の
小問はかなり簡単だったんで喜んだんだけど… 再帰の計算量(?)を求める
問題とsamefringeが難しかった…
188:デフォルトの名無しさん
06/08/17 21:39:36
samefringeを出題するおちゃめな大学があるのか…
189:デフォルトの名無しさん
06/08/18 17:36:24
flattenしてequal?で調べるではやっぱり駄目?
190:デフォルトの名無しさん
06/08/18 18:31:56
どんな問題なんだろう。call/ccでコルーチン作るやつかな?
そんなの院試に出されたら死屍累々という気もするが。
191:デフォルトの名無しさん
06/08/18 18:50:28
>>190
試しに書いたらhaskellで楽勝だったのに
Schemeで大失敗したorz
192:デフォルトの名無しさん
06/08/18 20:48:44
Haskellだとどうやって書くの?
193:デフォルトの名無しさん
06/08/19 02:39:27
ググッたらめっけた
data Tree a = Leaf a | Node [Tree a]
fringe (Leaf x) = [x]
fringe (Node x) = foldr (\x r -> fringe x ++ r) [] x
samefringe x y = fringe x == fringe y
でもツリー作るのマンドクサイ
(Node [(Node [(Leaf 1), (Leaf 2)]), (Node [(Leaf 3), (Node [(Leaf 4) ])])])
194:デフォルトの名無しさん
06/08/26 15:32:15
SBCLのREPLから対話処理をするプログラムを実行したいんだけど、
例えば以下のようにすると、
(setf p (run-program "/usr/bin/dc" nil :pty t :wait nil))
(format (process-pty p) "2 3 *~%")
(terpri (process-pty p))
(format (process-pty p) "p~%")
(terpri (process-pty p))
(format t "~A" (read-line (process-pty p)))
6が表示されると思われるんだけど、実際には入力待ちになってしまうのはどうしてなぜ?
195:デフォルトの名無しさん
06/08/28 00:42:24
読み込みでブロックするっつーことは stream が無効なわけじゃなさそうだね.
stream が buffering してんじゃない? dc ないから bc で試してみた.pty
使えない環境なんで :stream 経由で.環境は sbcl 0.9.16 です.
CL-USER> (defun bc-example ()
(let ((process (run-program "/usr/bin/bc" '("-q" "-i") :output :stream :input :stream :wait nil)))
(unwind-protect
(progn
(write-line "x = 2" (process-input process))
(write-line "y = 29" (process-input process))
(write-line "x^y-1" (process-input process))
(finish-output (process-input process)) ;; これがないとブロックする
(write-line (read-line (process-output process))))
(process-close process))))
BC-EXAMPLE
CL-USER> (bc-example)
536870911
"536870911"
196:デフォルトの名無しさん
06/08/28 17:00:26
R5RSを読んでるんですが、
3.5節の末尾再帰のところに出てくる「アクタ(actor)」というのは
昔の歴史的な事柄で今のSchemeにはもう関係ない話だと思って良いですよね?
197:デフォルトの名無しさん
06/08/28 21:58:26
Hewittせんせーい!
198:デフォルトの名無しさん
06/08/29 21:17:32
scm5e1でscheme勉強しています。
> (let ((x 10)) (define x (+ x 1)))
とすると、
;ERROR: bad body ((define x (+ x 1)))
; in expression: (let ((x 10)) (define x (+ x 1)))
; in top level environment.
;STACK TRACE
1; (let ((x 10)) (define x (+ x 1)))
と怒られてしまうのですが、
これはなぜでしょうか。
letの中で外に影響を及ぼすdefineを使っているからですか?
199:デフォルトの名無しさん
06/08/29 21:34:56
>>198
define で初期値として x を参照してるから。
(let ((x 10)) (define x (+ x 1)))
== (let ((x 10)) (letrec ((x (+ x 1)))))
んで、R5RS 4.2.2 Binding constructs
> library syntax: (letrec <bindings> <body>)
> Syntax: <Bindings> should have the form
> ((<variable1> <init1>) ...),
...
> One restriction on letrec is very important: it must be possible
> to evaluate each <init> without assigning or referring to the
> value of any <variable>.
200:198
06/08/30 07:05:34
>199
ありがとうございます。
defineの所の説明とあわせて読んだら分りました。
こんどは、letrecを試してみようと、
> (letrec ((x 2) (y 'x)) (eval y))
としたところ、
;ERROR: "/usr/local/lib/scm/Init5e1.scm": unbound variable: x
; in expression: (#@@eval (#@@copy-tree #@x))
; in scope:
; (x) procedure <anon>
; (@eval @copy-tree . #@let)
; defined by load: "/usr/local/lib/scm/Init5e1.scm"
;STACK TRACE
1; x
2; (#@letrec ((x 2) (y (#@quote x))) (#@eval #@y))
といわれてしまいます。
(define x 2)(define y 'x)(eval y)
なら2が帰って来てくれるのですが、
何がいけないのでしょうか。
letrecだと変数領域が割り当てられて、
それから初期値が算出される、と書いてあったので、
このやり方ならyは既に割り当てられたxをさすようになるだろうから、
正しく動くと思ったんですが...
201:デフォルトの名無しさん
06/08/30 08:25:52
>>195
これでうまくいきました。cmuclでもちゃんと動くようです。ありがとうございました。
Schemeのflashのようなものでしょうか。改行すればフラッシュされるものと思いこんでました…orz
202:デフォルトの名無しさん
06/08/31 02:33:39
>>200
eval は局所環境を参照しないんじゃないでしょうか。
203:デフォルトの名無しさん
06/08/31 19:20:39
>>200
環境についてもうちょっと調べたほうがいい。
(eval y (current-environment))
で期待の動作をする処理系もあるけど、
トップレベルは言語の都合上、例外的な動作になる。
schemeの気持ち悪い所の1つ。
多分やりたい事のほとんどはマクロで済むし、
移植性も悪くなるから、schemeに慣れてくると
evalはあまり使わなくなる。
204:デフォルトの名無しさん
06/08/31 23:15:07
きんもー
205:198
06/09/01 14:40:56
>202,203
ありがとうございます。
もう少し勉強しなおしてみます。
206:デフォルトの名無しさん
06/09/03 14:23:09
URLリンク(www.comics.com)
とほほ。
207:デフォルトの名無しさん
06/09/03 16:32:11
物の喩えなのは重々承知しつつも
やはり1コマ目のシチュがあり得なすぎて入り込めん。
208:デフォルトの名無しさん
06/09/04 03:19:44
入り込むもなにも
リスパーをばかにしてるだけじゃんw。
209:デフォルトの名無しさん
06/09/04 06:55:22
キャラ紹介
URLリンク(www.comics.com)
によると、
Roy, the engineer/repair guy:
an expert with computers and machines,
but he doesn't have a clue how to deal with people.
らしいから、
おにゃのこと言語オタクの区別が出来てないってことじゃなかろか。
210:デフォルトの名無しさん
06/09/04 08:11:19
普通に考えればLISPを何に変えても成り立つ罠
211:デフォルトの名無しさん
06/09/04 08:19:04
乳房の輪郭と ( ) の区別がつかなくなることはよくあること。
212:デフォルトの名無しさん
06/09/04 13:55:59
>>207
ハゲデブメガネじゃなあ
213:デフォルトの名無しさん
06/09/04 15:02:06
2コマ目の負け惜しみが悲しい…。
「LISPの価値の分からないようなやつとは、誰ともデートしたくなかったんだ」
ショボーン。
214:デフォルトの名無しさん
06/09/10 22:19:48
>>213
違うだろ。LISPじゃなくて「LISP使える俺様」なのがpoint。
遅レスで悪いが。
215:デフォルトの名無しさん
06/09/12 01:18:07
Scheme勉強している初心者です。
お世話になります。
先ほど、Biglooは.NETにも対応(?)しているということを知り、
インストールしてみました。
しかし、英語力がないためかマニュアル読んでも欲しい情報が得られませんでした・・・。
.NET Frameworkを使ってMessageBoxを表示するようなプログラムはどう書けばいいのでしょうか??(汗
ご存知の方いましたら教えてください。。。宜しくお願いします。
216:デフォルトの名無しさん
06/09/12 22:29:54
.NET上のVM向けにコンパイルできるってだけじゃない?
217:デフォルトの名無しさん
06/09/13 09:05:35
これってダンジョン自動生成のコード書くのに向いてます?
218:デフォルトの名無しさん
06/09/13 12:39:59
向いています
219:デフォルトの名無しさん
06/09/13 13:28:29
>>217 風来のシレン
>>217 乱数発生ライブラリー作ってくれ
220:デフォルトの名無しさん
06/09/13 14:09:12
つくってくれってなんですか
もしかしてEMacsでローグ系が
プレイできたりします?
221:デフォルトの名無しさん
06/09/13 14:22:59
します
222:219
06/09/13 22:07:09
>>217 風来のシレン
>>218 乱数発生ライブラリー作ってくれ
一文字違うと大変な事になるなぁ・・
ゴメン
223:デフォルトの名無しさん
06/09/14 09:16:50
シレンは生成せず既製のダンジョンからランダムに抜いているだけですよ。
それとこっちに来てください。
スレリンク(gamedev板)
224:デフォルトの名無しさん
06/09/15 08:20:17
ドラフト出ましたよ。
URLリンク(www.r6rs.org)
225:デフォルトの名無しさん
06/09/15 09:05:05
正式版出るのって再来年くらい?待ちきれないYO
226:デフォルトの名無しさん
06/09/15 11:30:41
待ってる間にHaskellに手を出してしまった俺は根性無し。
227:デフォルトの名無しさん
06/09/15 12:12:31
やーい根性なし~
228:デフォルトの名無しさん
06/09/17 21:47:03
亀だが >>206 はあんまりだ。Lisper の地位を回復するため
わたしの体験を語ろう。
その頃のわたしにはコンピューター室が一番の居場所だった。
ノートPC用の電源。無線ネットワーク。他に何がいる?
銀色のノートPC がわたしの唯一の所有物だった。そして、
わたしには他には何もいらなかった(と信じていた)。
いまも鮮明に思い出せる。美しい黒髪、大きな瞳の優等生。
(つまり、「オタク」だったわたしには高嶺の花、だった。)
仮に t 子と呼ぼう。誰もいない夏休みのコンピューター室に、
ふいに彼女があらわれたのだ。
「君はずっとそこにいるの?」と彼女は言った。
-- それがわたしにとって、 Lisp という未知なる言語を学ぶ
きっかけだった。
229:228
06/09/17 22:01:00
彼女がどのような意図だったかは分からない。
ただ、わたしは赤面し、怒り、何か毒舌を吐いた気がする。
うるせえガキはどこかへ行け、とか何とか。
(実際には彼女は優等生なだけではなく大人で、下手をすると
それから何年もたったいまのわたしよりも大人びていた。)
ありがたいことに、彼女は床でノートPC と格闘していた
わたしに興味を持っていた。わたしはその頃趣味で
幾つかのプログラムを書いていた。発表する気もない、
自分だけのプログラム。書かずにはいられないプログラムだった。
彼女の質問は驚くほど鋭く
- その頃のわたしは C と Perl を使っていたが、
そのどちらも学校で習ったものではなかった -
彼女はわたしよりも C を、あるいはノイマン型コンピューターを
熟知していたのだと思う。そのことはすぐに分かった。
いつしかわたしはまるで「オタク」を相手にするように、
自然に彼女と会話をしていた、その事に気付いて、唐突に沈黙した。
(調子にのるな、こんな美少女とお前は話をする
資格なんかないんだ geek が、とこころの中で誰かが非難していた)
230:デフォルトの名無しさん
06/09/17 23:49:33
いくらリロードしても誰もワッフルとか書かないから諦めろ。
231:デフォルトの名無しさん
06/09/18 00:03:48
URLリンク(www.cbook24.com)
232:デフォルトの名無しさん
06/09/18 02:11:31
>>231
意味もなく生物のイラストが表紙になるのはやはりラクダのせいかねぇ。
233:デフォルトの名無しさん
06/09/18 02:41:38
表紙解説
Common LispはEmacsじゃないから野牛は使えません。
そこでインタプリタ型bisonことawk(海鳥)に目を付けたが
Common Lispは手続き型じゃないからaukは使えません。
そこで海鳥じゃなくて水鳥に落ち着きました
234:デフォルトの名無しさん
06/09/18 02:46:55
Lisp関係の本が増えるのは嬉しいけど、入門書以外も充実したらいいなと思うんだ
235:デフォルトの名無しさん
06/09/18 03:24:37
>>233
作者さんですか? Lisp 書籍コレクターの血が騒ぐので買います。でももっと
特化した内容のも買いてください。まずは教材に使えそうな「自然言語処理編」
とか「統計編」とか「数値計算」とか~
でも Common Lisp の本なのに SLIME がないのはちょっと残念…
236:デフォルトの名無しさん
06/09/18 04:02:49
ぶしつけな質問だけど関数型プログラミングってメリットある?
代入式使わないとか。
237:デフォルトの名無しさん
06/09/18 04:17:35
>>231
今時出すのにこの題材でCommon Lisp? と思ってしまうが、
xyzzy使ってとっつきやすく、ってことなのかな?
238:デフォルトの名無しさん
06/09/18 04:18:48
>>236
マルチスレッドでアホみたいに悩むことが減る。
239:デフォルトの名無しさん
06/09/18 04:32:30
それをいったら R6RS 直前に Scheme も微妙じゃね。PLT なら入門者にも受け
るか…とおもうが xyzzy には勝てないわな。あれは Lisper 以外も使いたがる
良いエディタです。
>>236
Lisp の場合は強制じゃなくて選択ですからね。メリットが実感できるまでは普
通に副作用使いまくればいいんじゃないでしょうか。
240:デフォルトの名無しさん
06/09/18 07:07:45
残念ながらxyzzyはあまりに遅すぎる
241:デフォルトの名無しさん
06/09/18 07:41:15
何と比較して?常駐秀丸と起動速度で勝負とかなら同意するけど…
242:デフォルトの名無しさん
06/09/18 07:50:40
>>241
Lispの実行速度じゃないの。
243:デフォルトの名無しさん
06/09/18 08:39:14
>>241
普通にキータイプのレスポンスが遅くね?
244:デフォルトの名無しさん
06/09/18 09:32:45
>>231とか、この前本屋で手に取った
URLリンク(www.amazon.co.jp)
とか、`関数型'って言うのが微妙にクローズアップされているような
気がする。
その言語を扱っている書籍の中で、過去に出版された物より…
くらいの意味だけど。
Haskellが話題になったから?
245:デフォルトの名無しさん
06/09/18 11:37:22
>>234
野田さんのOn Lisp翻訳に期待。(まだー?w)
246:デフォルトの名無しさん
06/09/18 14:22:46
>>245
On Lispの翻訳を見たときは、日本にもまだまだ優秀な学生さんが居ると感心していたが
urlを見ると東大の学生じゃねーか、東大だよ東大!!!
そりゃぁ、出来て当然。Orz
247: ◆r6EONKKhcc
06/09/18 14:25:48
orz
248:デフォルトの名無しさん
06/09/18 14:43:19
>>246
東大コンプレックス乙ww
249:デフォルトの名無しさん
06/09/18 15:29:45
高卒は必ず噛み付くよね、こういう時。
250:デフォルトの名無しさん
06/09/18 16:13:12
>>249
学歴コンプレックス乙ww
251:デフォルトの名無しさん
06/09/18 16:49:00
>>250
高卒乙ww
252:デフォルトの名無しさん
06/09/18 19:18:58
もうやめろ
253:デフォルトの名無しさん
06/09/18 22:32:01
LISP…言語設計のブラックホール
URLリンク(www.rubyist.net)
Guy Steele曰く「Lispはブラックホールだ。「Lispに似た(でもLispではない)なにか」を
作ろうとすると、重力につかまってブラックホールに落ちてしまう。そしてそれはLispになる。
254:デフォルトの名無しさん
06/09/18 22:45:52
Java も大変だよね。シンプルを目指していたのに Generics や Closure など
初期にあえて省いた機能を入れざるを得ない…。
255:デフォルトの名無しさん
06/09/18 23:31:15
Javaの場合は言語サイドからってより、VMで動かそうぜというコンセプトが
結局Closure導入に至った感じがする。
256:デフォルトの名無しさん
06/09/18 23:54:05
様々な言語で共通に使えるVMということを考えると当然の方向性だな
257:デフォルトの名無しさん
06/09/19 00:27:08
Javaの初期にはネットワーク対応OLEという方向が想定されてて
そのための安全性とポータブル性に注意が払われてたが
実際は鯖サイドで成功して、どんどんノリ重視ホイホイ開発な方向になってきたわけで。
Appleも一時期Objective-Cを畳んでJavaに移行ムードだったのが復活模様だし
258:デフォルトの名無しさん
06/09/19 11:55:35
>>247
あれ?flatlineさん、まだ2chに来てたのね。
はてなダイアリ見てます。院試合格おめでとう。たまにはLISPのことも書いてね。
『On Lisp』出版の話とかは、別に急がなくてもいいから。
URLリンク(d.hatena.ne.jp)
まあこんなこと言ってる自分も、最近じゃPythonとHaskellばかりうわなにをするやめr
259:デフォルトの名無しさん
06/09/19 18:04:23
Schemeでスクロールゲームって作れたりしますか?
260:デフォルトの名無しさん
06/09/19 18:13:05
魔法の巻物でなんかするゲームかね?
261:デフォルトの名無しさん
06/09/19 18:30:03
R5RSのつもりでR6RSのドラフトを見ていくと3倍の時間がかかるゲームですか?
てか50ページから142ページに増大ってどういうことよ。
正式版ではシェイプアップするのかね。
262:デフォルトの名無しさん
06/09/19 19:07:59
>>259
Schemeで作れないものなんてありません
263:デフォルトの名無しさん
06/09/19 19:10:09
ではSchemeでコーヒーをいれてくれ
264:デフォルトの名無しさん
06/09/19 19:10:14
>>261
ほとんどライブラリだから興味あるとこだけ読めばいいんじゃね?
異論もあるだろうが、個人的にはやっと一人前の言語仕様書になったという気がするよ。w
これでSRFIのお世話にならないで済むようになるのかな。
265:デフォルトの名無しさん
06/09/19 19:10:50
>>263
Java VMを作れという意味か?w
266:デフォルトの名無しさん
06/09/19 19:21:35
RFCにコーヒー淹れるプロトコルあったな
267:デフォルトの名無しさん
06/09/20 00:47:37
流れ豚ギルケド、MLISP(Meta-Lisp) なんて方言があるのね。
Algol 風の文法らしいけど、誰か使った事ある?
268:デフォルトの名無しさん
06/09/20 00:50:50
>>267
M式だな。昔、中西先生が実装した奴を使った。
昔はエディタなどの入力支援が貧弱だったから、括弧が減るのは有り難かったのかも
しれないが、S式に慣れてしまうと要らないかなという気もする。
入門者向けには面白いかもしれないね。
269:デフォルトの名無しさん
06/09/20 01:08:10
>>267
URLリンク(sumim.no-ip.com:8080)
余談。
竹内郁雄『初めての人のためのLISP』では、M式は一応ちゃんと説明されていたけど、
そのあとすぐ、だけどS式だって十分読み書きしやすいんだから、こんなの要らないし、
この本でももう使わない、と切って捨てていた。
さすがは竹内先生。
270:デフォルトの名無しさん
06/09/20 08:06:59
>>268-269
元はM式から来ているみたいですが、M式とはちょっと違うみたいです。
fURLリンク(reports.stanford.edu)
URLリンク(hopl.murdoch.edu.au)
271:デフォルトの名無しさん
06/09/20 11:36:07
>>269
これマクロはLispと似たような感覚でできるの?
272:デフォルトの名無しさん
06/09/20 22:39:56
define-syntaxとsyntax-caseの間のlambdaいらなくね?
273:デフォルトの名無しさん
06/09/21 01:58:21
lambda を書かなくて済むマクロを定義すればよくね?
274:デフォルトの名無しさん
06/09/21 20:46:49
頭悪くてdefine-syntaxを定義できねえ
define-macroのが良くね?
275:デフォルトの名無しさん
06/09/22 03:25:24
>>272-273
あ
っ
そ
276:269
06/09/22 11:03:14
>>271
すまん、見落としていた。
結論から言うと、知りませんごめんなさい。
憶測を述べると、多分出来ないと思う。
「初めての人のためのLISP」を見直してみると、P201-P203にM式の説明が載っ
ているんだけど、この記法ではS式をデータ、M式をロジックとして用いると書
かれてる(S式は無条件でquoteされている扱いに)。
LISPのマクロはコードとデータの区別がないがゆえに成立するものだから、M
式ではマクロは書けないんじゃないかな。
277:デフォルトの名無しさん
06/09/22 13:56:08
そこで、Dylan ならマクロも OO もオプショナルな型指定も出来るなあと
いつも思うんだけど、何故か食指が動かん。今なら OpenDylan が使える
んだが。
278:デフォルトの名無しさん
06/09/22 19:35:38
名前が気持ち悪い>dylan
279:デフォルトの名無しさん
06/09/22 19:40:56
dylanってボブ?
280:デフォルトの名無しさん
06/09/23 15:50:49
Rubyist のための他言語探訪 【第 6 回】 Dylan
著者:まつもとゆきひろ
URLリンク(jp.rubyist.net)
> 人名の方の由来は Bob Dylan ではなく、Dylan Thomas (英国の詩人 1913-1953)
> なのだそうです。
もっとも、Bob Dylanの方も、ディランという名は詩人のDylan Thomas から
取っているので、どれも元ネタはこの詩人。
281:デフォルトの名無しさん
06/09/23 16:04:25
だ
か
ら
なに?
282:デフォルトの名無しさん
06/09/23 18:22:26
279=281だったら苦笑
283:デフォルトの名無しさん
06/09/23 19:23:31
Rubyist のための他言語探訪
俺は、この題名のほうに苦笑
284:デフォルトの名無しさん
06/09/23 22:13:33
>>279
DYnamic LANguage
285:デフォルトの名無しさん
06/09/29 02:40:08
eval-whenを使って、コンパイル時にテーブルを作っておいて実行時にはそれを引く
ということをしたいのですが、どう書けばいいでしょうか。
例えばelispで
(defun foo (x) (assq x (eval-when-compile (mapcar #'cons '(a b c) '(1 2 3))))
とすれば、コンパイルすると定数のテーブルになってくれますが、
Common Lispのeval-whenを使ってコンパイル時に計算するにはどう書けばいいんでしょ。
286:デフォルトの名無しさん
06/09/29 09:16:41
これじゃだめかな
(defun foo (x) (assq x #.(mapcar #'cons '(a b c) '(1 2 3))))
287:デフォルトの名無しさん
06/09/29 11:10:28
ChezSchemeの高速性のひみつ
URLリンク(www.kmonos.net)
なかなか面白かったんで貼ります。
288:デフォルトの名無しさん
06/09/29 11:58:59
>>286
ありがとうございます。#.の前に'がいるみたいですが、使えました。
ところで
(eval-when (:compile-toplevel) (defun bar () (list 1 2 3)))
(defun foo (x) (assq x '#.(mapcar #'cons '(a b c) (bar))))
みたいに#.の中でbarが使えるようなのですが、これは保証されているのでしょうか?
#.による置換はコンパイラの前のリーダでの処理だと思うので、
ちょっと変な感じもするんですが。
289:デフォルトの名無しさん
06/09/29 23:15:08
URLリンク(book.mycom.co.jp)
入門Common Lisp~関数型4つの特徴とλ計算
290:デフォルトの名無しさん
06/09/30 08:30:20
>>289
>>231
291:デフォルトの名無しさん
06/09/30 10:15:28
一日一門のスレにも書いてるし宣伝なんじゃない?
292:デフォルトの名無しさん
06/09/30 11:49:09
>>288
S 式一つずつ read -> compile を繰り返してるんだと思うと変でもないような。
でも保証されているかといわれると、どうなんだろう
293:デフォルトの名無しさん
06/09/30 12:32:00
コンパイル時に評価してほしいならマクロにすれば?
(defmacro eval-when-compile (&body body)
(list 'quote (eval (cons 'progn body))))
294:デフォルトの名無しさん
06/10/02 06:33:32
>>293
標準で既にそういう手段が用意されているんじゃないかと思ったんですよ。
自分でマクロを用意しないとだめですかね。
(私も似たようなのを書きました。式を一つだけとり、compile-time-valueと)
>>292
保証されているような気がしてきました。というのも、
(in-package "HOGE")
も以後のリーダの動作に影響しないといけないから。
295:デフォルトの名無しさん
06/10/03 17:18:57
clisp 2.40 age
296:デフォルトの名無しさん
06/10/05 10:58:50
Rubyの生産性の高さはどこまで本当か?
URLリンク(d.hatena.ne.jp)
はてなブックマークの人気記事だが、最終段にいきなりCLOSの熱烈な礼賛が現
れて驚いた。「追記:理想と現実」の部分。
何かそこだけ読むと、以下へのリンクだけあれば済むような気もするが。
技術野郎の復讐---全ての言語はLispに向かう?
URLリンク(practical-scheme.net)
297:デフォルトの名無しさん
06/10/05 12:16:09
PythonやRubyに備わってるような現代風のライブラリをCommon Lispでも標準化して
くれれば、もっと仕事でCommon Lisp使えるんだけどなぁ。
ライブラリに釣られてPythonとか使っちゃうことが多い今日この頃です。w
298:デフォルトの名無しさん
06/10/05 13:35:15
現実的には、ライブラリは超重要だよな。
299:デフォルトの名無しさん
06/10/05 14:19:08
(in-package :2ch-user-lib)
300:デフォルトの名無しさん
06/10/05 14:59:07
>>297 お前は俺か。
301:デフォルトの名無しさん
06/10/05 17:51:26
Norvigだって似たようなこと言ってるぜ。はっ、もしかしてお主はNorvig?
302:デフォルトの名無しさん
06/10/05 23:14:54
>>297
自分ライブラリでいいじゃん。
303:デフォルトの名無しさん
06/10/05 23:57:39
だめだ
304:デフォルトの名無しさん
06/10/06 00:04:45
>>302
ライブラリ作るほうが面白くなってきて仕事が進まないのが難点
305:デフォルトの名無しさん
06/10/06 07:40:34
仕事は誰かにやらせようぜ
306:デフォルトの名無しさん
06/10/07 03:35:55
リファレンスカウントを採用しているCommon Lisp処理系ってあるんですか?
循環参照を解決するために他のGCも併用しなきゃいけないっていうのはわかってるんですが、基本的に使い終わったらすぐ開放されるっていう安心感がほしいんです。
Lispはメモリ馬鹿喰い&ガベコレで時間喰いまくりというイメージがあるので。
307:デフォルトの名無しさん
06/10/07 04:50:18
いつの時代の話やねん
308:デフォルトの名無しさん
06/10/07 07:22:15
使い終るたびに解放してたら遅くなるよ。
309:デフォルトの名無しさん
06/10/07 12:38:01
>>297
禿同。まずは文字列処理周辺のライブラリかな。
310:デフォルトの名無しさん
06/10/07 13:16:03
>>306
リファレンスカウントだとカウンタ操作が頻繁におこるのがねぇ。ヒマなとき
だろうがタイトループだろうが問答無用なうえ、カウンタ操作ミスると……
使い終わったらすぐ解放してほしいなら dynamic-extent があるよ。スタック
上にリストや配列を確保できるので、スコープ抜けた瞬間に GC のコストゼロ
で消える。それ以外ならリファレンスカウントよりも Generational GC のほう
が一般的に良いと思うけどねー。
まぁリファレンスカウントのほうが向いてるケースもあるので、どうしても、
というならあらかじめまとめてメモリを確保して俺リファレンスカウントでも
いいんじゃね。
311:デフォルトの名無しさん
06/10/07 13:27:18
>>306
Lispのように小さいオブジェクトをいっぱい操作すると、リファレンスカウント法って
ものすごーーーーーく重いと思うよ。
あと、デストラクタのような概念が無いから解放されなくてもデメリットがあまり無いし。
312:デフォルトの名無しさん
06/10/07 13:36:18
dynamic-extent イイ!!! 最近だと CMUCL や SBCL とかのフリーのコンパイラ
でも一部実装されてんでしょ?良い時代になったもんだ。
313:デフォルトの名無しさん
06/10/07 18:26:00
URLリンク(cl-cookbook.sourceforge.net)
314:デフォルトの名無しさん
06/10/07 23:52:06
教授に、とある学生の卒研のお手伝いを任された。
あるグラフを別のグラフへマッピングし直すような課題。昨日のお話:
後輩:
「先輩、先輩はソフトを Lisp で書いてるって聞いたんですけど。
この研究には向いてるって言ってましたよね。
私の卒研では Lisp でないとダメなんですか?全く知らないんですけど。」
と、悲しそうな顔。。
私:
「あ、いや、とりあえず私のソフトで最初のグラフデータを
出力するところまでやればいいよ。その後はそれを取り込んで、
C でもなんでも好きな言語で料理すればいいよ。」
後輩:
「助かりました。Lisp なんて習った事無いんです。名前は聞いた事は有りますけど。」
私:
「え?私は違うけど、君は純粋に情報系の学生でしょ?
学部の授業に有るでしょ。 Common Lisp とか、Scheme とか、あ~。そうか。
Haskell とか、ML とかをやったのかな?」
後輩:
「あ、その、Scheme はやりました。でも、Lisp はやった事無かったんです。」
315:デフォルトの名無しさん
06/10/07 23:57:41
ワッフルワッフル
316:デフォルトの名無しさん
06/10/08 01:05:03
ハスケルハスケル
317:デフォルトの名無しさん
06/10/09 02:14:04
ハスケルってトップダウンって感じだよね
仕様変更にものすごく弱い
318:デフォルトの名無しさん
06/10/09 03:30:27
本物のHaskellプログラマは仕様変更しないから
319:デフォルトの名無しさん
06/10/09 09:53:08
本物のプログラマはHaskellを使わない
320:デフォルトの名無しさん
06/10/09 10:21:30
あらゆる仕様変更にリスクが伴う。
だが昨日を守ること、すなわち仕様変更を行わないことのほうが
明日を作ることよりもリスクを伴う。
321:デフォルトの名無しさん
06/10/09 17:22:10
>>320
ダブルミーニングっつーか掛け言葉的にカッコいい言い回しをしたつもりなんだろうけど
全然意味分からん。
322:デフォルトの名無しさん
06/10/09 17:24:13
要するに「仕事は大変だ」って言ってるだけだからな。
323:デフォルトの名無しさん
06/10/09 17:45:41
プログラマはつらいよ
324:デフォルトの名無しさん
06/10/09 18:24:27
>>323
やべぇ、渥美清が「さくらタンハァハァ」とか言ってるイメージが。
325:デフォルトの名無しさん
06/10/09 19:28:14
>>324
いいじゃねえか。
役柄上はキングオブ童貞だぜ。
326:デフォルトの名無しさん
06/10/13 17:50:32
*** - OPEN: file #P"C:\\home\\onjo\\lisp\\lib\\common\\cffi\\src\\utils.lisp" does not exist
327:デフォルトの名無しさん
06/10/13 19:32:53
下がりすぎて見つけづらいage
328:デフォルトの名無しさん
06/10/14 02:37:33
>>326
どうした?メッセージのとおりファイルがないんだろ?
329:デフォルトの名無しさん
06/10/14 02:49:45
CFFI って使ったことネェ。UFFI とくらべてどうなの? >>326
330:デフォルトの名無しさん
06/10/14 16:08:37
>>326
なつかしー
前に俺もなったw
LispUser.netの中の人しっかりしろよってwwww
331:デフォルトの名無しさん
06/10/15 02:05:44
ワラタ、謎のhomeディレクトリができてると思ったらLispUser.netの人のだったのか、
URLリンク(lambda.s55.xr"ae".com)といいおっちょこちょいだな、そこがまた良いがw
332:デフォルトの名無しさん
06/10/17 04:01:11
clispとかsbclとかで、式をステップ実行する方法はないでしょうか?
Emacsのedebugみたいなやつ。
333:デフォルトの名無しさん
06/10/17 04:39:46
>>332
step じゃ駄目?
URLリンク(www.lispworks.com)
334:デフォルトの名無しさん
06/10/17 06:39:51
こういうのがあるんですね。ありがとうございます。
何でも決まってるという感じだなあ。
関数の一部をステップ実行したいときは監視したいところを
stepで囲んでdefunして適当な式をevalするという感じでしょうか?
SLIMEだとstepの部分でデバッガに入ったらsを押すとステップが進みますね。
その中のどの部分を評価しようとしてるかも表示されて(もうちょっと
見易い方がいいけど)なかなかよさそう。
335:デフォルトの名無しさん
06/10/17 19:21:10
>>332
去年だったっけ?
Google Summer of Codeでslime用のedebugみたいなstepperを実装するっていうのやってたけど、いつのまにかそんな話は無かったことになってるみたい。
336:デフォルトの名無しさん
06/10/18 15:33:21
人の属性を表すマクロhogeを作るとき、
引数の並びは次のどちらが一般的なんですか?
(setf (hoge 'Hiroyuki :sex) :male)
(setf (hoge :sex 'Hiroyuki) :male)
337:デフォルトの名無しさん
06/10/18 17:04:21
後者かしら
338:デフォルトの名無しさん
06/10/18 17:15:03
いやもしかしたら前者かも試練
339:デフォルトの名無しさん
06/10/18 19:08:03
>>337-338
結局、好みってこった。
340:デフォルトの名無しさん
06/10/20 04:05:03
(`・ω・´)今日からおまんこ再開です!
341:デフォルトの名無しさん
06/10/20 09:59:55
やっと週末♪ルンルン
342:デフォルトの名無しさん
06/10/20 22:03:20
週末はコーディング天国です。
343:デフォルトの名無しさん
06/10/21 02:42:52
佐賀はローディング煉獄です。
344:デフォルトの名無しさん
06/10/22 00:49:44
?????何故に佐賀?
345:デフォルトの名無しさん
06/10/22 01:14:30
>>344
URLリンク(www.pheedo.jp)
346:デフォルトの名無しさん
06/10/25 00:07:56
何も無ければ来月末、遂に SBCL 1.0.0 が出るみたいね。
347:デフォルトの名無しさん
06/10/25 06:24:22
Schemeの関数呼び出しの評価順序についてですが、R5RSの
> _Note:_ Although the order of evaluation is otherwise
> unspecified, the effect of any concurrent evaluation of the
> operator and operand expressions is constrained to be
> consistent with some sequential order of evaluation. The
> order of evaluation may be chosen differently for each
> procedure call.
というのがいまいちよくわかりません。特に最後の文ですがこれは、
あるときは (a b c) が a→b→c の順で評価され
またあるときは (d e f) が f→e→d の順で評価され
しかしてあるときは (g h i) が g→i→h の順で評価され
ても構わないってこと?
348:デフォルトの名無しさん
06/10/25 07:10:34
operatorとoperandsで見たらoperatorの評価が先じゃないといけないけど、operandsの評価はoperatorの評価に基づくprocedure呼び出しが何かに依存する(でも同じprocecureに対しては常に同じ順序である必要あり)って感じじゃまいか?
349:デフォルトの名無しさん
06/10/25 07:57:48
>>347-348
その引用文で言ってるのは「評価順序は決まってないし、実行するたび順序が
変わるかもしれないけれど、ちゃんと逐次評価される」ってことでしょ。
つまり (a b c) で a b c が同時に評価されたりしないってこと。
350:347
06/10/25 08:05:41
ありがとうございます。つまり、評価はシリアライズされないといけない
(それぞれパラに評価してはいけない)が、その順序は好きにしていいよと
いうことですか。例えば
((begin (X) (Y) (lambda (a) a)) (begin (S) (T))) という式を評価すると
関数X,Y,S,Tが評価される順序は必ず
X→Y→S→T または S→T→X→Y
のどちらかになると。
351:デフォルトの名無しさん
06/10/28 09:48:25
計算機プログラムの構造と解釈
難しすぎる。
これ、問題全部といた人いますか?
質問しても良いです?
352:デフォルトの名無しさん
06/10/28 10:49:17
>>351
とりあえず>>4に目を通してからのがいいんだぜ
353:デフォルトの名無しさん
06/10/28 11:24:07
スレリンク(tech板)
354:デフォルトの名無しさん
06/10/29 04:42:37
しくぷ?
しっくぴー?
355:デフォルトの名無しさん
06/10/29 05:30:02
シック( ´,_ゝ`)プ
356:デフォルトの名無しさん
06/10/30 03:10:38
阿呆っぽい質問で申し訳ないんだが、
LispやSchemeってどういう用途で使われるんだ?
357:デフォルトの名無しさん
06/10/30 03:14:04
汎用
358:デフォルトの名無しさん
06/10/30 12:50:12
俺は低レベルな操作以外はほとんどSchemeでやってる
359:デフォルトの名無しさん
06/10/30 12:54:13
俺は低レベルだからほとんどLispで済ませてる
360:デフォルトの名無しさん
06/10/30 18:27:33
自分で実装できないくらい難しい言語はわからないから括弧の世話になってる
361:デフォルトの名無しさん
06/10/30 22:36:45
>>360
不覚にもワロタ
362:デフォルトの名無しさん
06/10/31 00:23:15
確かにLispは(暇さえあればすぐに)自分で実装できそうな透明感が魅力だよな
363:デフォルトの名無しさん
06/10/31 05:44:09
お勧めの処理系は?
364:デフォルトの名無しさん
06/10/31 06:54:34
>>363
Chez Scheme
365:デフォルトの名無しさん
06/10/31 11:49:13
emacs22
366:デフォルトの名無しさん
06/10/31 12:15:00
>>363
マジレスすると CLISP かな
Scheme なら Gauche
367:デフォルトの名無しさん
06/10/31 21:52:17
俺はGaucheしか使ってないが、
それは日本語を扱うときに罠がないからだ!
368:デフォルトの名無しさん
06/10/31 23:12:54
OpenMCL で UNICODE が使えるようになったみたいね。
369:デフォルトの名無しさん
06/10/31 23:53:40
SLIMEの起動画面はもう少し静かにならんのか
370:デフォルトの名無しさん
06/10/31 23:55:52
Win32版sbclがshift-jisに対応することを切に願う。
371:デフォルトの名無しさん
06/11/01 00:14:10
You can do it!
372:デフォルトの名無しさん
06/11/01 05:02:59
>>370
書いた。
373:デフォルトの名無しさん
06/11/01 07:44:45
>>369
Emacs 側の変数設定でできた気がする
374:デフォルトの名無しさん
06/11/01 08:18:38
アニメーションを抑制するなら、
(setq slime-startup-animation nil)
375:デフォルトの名無しさん
06/11/02 01:38:52
>371-372
shift-jis使えるの?
376:デフォルトの名無しさん
06/11/02 02:03:59
>>375
いつもの人がパッチ送ってくれてたよ。
CLX で日本語を表示させたくて、文字コードを JIS に変換する処理を書いた事があるけど、
ここら辺を参考にすれば自分で作るのも簡単だと思う。
URLリンク(sbcl.cvs.sourceforge.net)
377:デフォルトの名無しさん
06/11/02 03:06:02
パッチ当てれば普通に使えるみたい。
Windows で動かすにはコードページを alias として追加する必要があるのかな。
$ echo $LANG
ja_JP.SJIS
$ ./src/runtime/sbcl --core output/sbcl.core
This is SBCL 0.9.18.18, an implementation of ANSI Common Lisp.
More information about SBCL is available at <URLリンク(www.sbcl.org)
SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses. See the CREDITS and COPYING files in the
distribution for more information.
* sb-impl::*default-external-format*
:SJIS
* (coerce "表示" 'list)
(#▼U8868 #▼U793A)
* (string-to-octets "表示")
#(149 92 142 166)
378:デフォルトの名無しさん
06/11/02 18:50:54
実行ファイル作れるの?
379:デフォルトの名無しさん
06/11/02 23:03:14
>>378
作れるよ。ってか、もしかしてメーリングリスト見ながら書いてるノカ?
Windows でも cygwin/mingw があればいけるらしいけど…
380:デフォルトの名無しさん
06/11/02 23:13:35
えーと SBCL の話でいいのかな。
これの実行ファイル作成は
copy /b sbcl.exe + runtime.core runtime.exe
と同等の処理なので、必要なのは SBCL 自体だけ、cygwin も mingw も不要です。
381:デフォルトの名無しさん
06/11/02 23:28:36
ソカ、スマソ
382:デフォルトの名無しさん
06/11/03 00:18:38
それはともかく、Win32 で SBCL 使ってる香具師は
(sb-win32::ansi-codepage)
の内容を当てた patch を sbcl-devl に送れ。
1.0 で日本語 Windows がサポートされるかどうかの瀬戸際だぞ。
383:デフォルトの名無しさん
06/11/03 00:28:42
そういや SBCL は 1.0 の前にソースコードのクリーンアップがあると思ってたけど、
このままリリースに突入するっぽいね。kludge 系は潰すのかと思ってた。
384:デフォルトの名無しさん
06/11/03 00:49:23
何ヶ月か前の議論見ればわかるけど、SBCL が 0.10 ではなく 1.0 になるの
にはマーケティング的意味しかないよ。
とは言え多数の「いつかやろう」を「1.0 までにやろう」に push したのは
確かだから、充分に意味のあることだったと思う。
385:デフォルトの名無しさん
06/11/03 01:12:12
特に stabilize する意図は無いんだ。stable 版が出たらパッケージでも作ろうかとしてたんだけど、、、
1.0 は一般への影響はそれなりにあるのかな? SBCL を授業で使う大学とか出て来ると良いね。
386:デフォルトの名無しさん
06/11/03 09:49:45
quack.elに慣れると閉じ括弧を全部 ] で打つ癖がついてしまって困る。
387:デフォルトの名無しさん
06/11/04 21:04:21
SBCL on Windows でも日本語が使えるようになったよ。
URLリンク(article.gmane.org)
URLリンク(with2ch.net)
1.0 までにマージされるといいけど。
388:デフォルトの名無しさん
06/11/04 22:05:37
>>387
GJ!
389:デフォルトの名無しさん
06/11/06 01:14:32
SBCLのSTYLE-WARNINGは黙らせられないの?
390:デフォルトの名無しさん
06/11/06 22:06:13
schemeで、
(hoge a b c (hoge d e f) g)
のような式を書いたときに、
hogeが自分の括弧のネストレベルを判断して
動作を変えるようにしたいと思っています。
上の例でいえば、
1番目のhogeがネストレベル1の動作
2番目のhogeがネストレベル2の動作
をするようにしたいんですが、
やっぱりevalを定義し直すしか無いですか?
391:デフォルトの名無しさん
06/11/06 22:51:51
何をやりたいか、ではなく、何故そういうことをやりたいか、を書いた方が有用な助言が
得られる可能性は高いだろう。
392:デフォルトの名無しさん
06/11/06 23:14:18
>>391
俺は>>390じゃないけど、デバッグ用のユーティリティだと予想。
393:デフォルトの名無しさん
06/11/07 02:14:50
マクロにしろ関数にしろ、なんか変数にネストレベルを持って
それによって分岐するようにすればできるんじゃないの。
394:デフォルトの名無しさん
06/11/07 04:32:03
ネストの深さで動作が変わるのか?
読みにくそうだな。。。
>>390は>>391のレスにきちんと応えてほしい。
395:デフォルトの名無しさん
06/11/08 00:11:03
DrSchemeを触り始めたんですが、補完はどうやったらできるんですか?
Ctrl+Spaceを押すと「自動拡張」とステータスバーに出るけど、
意味がわからない。何かキーを押すと普通に入力されるだけだし……
396:デフォルトの名無しさん
06/11/09 22:00:44
URLリンク(journal.mycom.co.jp)
Cusp の紹介。
内容には色々言いたい点もあるけど...
397:デフォルトの名無しさん
06/11/12 18:42:22
lambda age
398:デフォルトの名無しさん
06/11/12 20:08:26
LISPでJavaのtoStringメソッドのような機構ってどのようなものがありますか?
399:デフォルトの名無しさん
06/11/12 20:30:00
(format nil "~a" ■)
400:デフォルトの名無しさん
06/11/12 20:34:30
(write-to-string ■)
401:デフォルトの名無しさん
06/11/13 00:16:24
(defmethod print-object ((object ■) stream)
...)
402:デフォルトの名無しさん
06/11/13 01:51:59
なんかエロイ
403:デフォルトの名無しさん
06/11/13 01:54:35
○○な部分を■で隠してあるんだな
404:デフォルトの名無しさん
06/11/16 21:04:25
SICP is dead.
405:デフォルトの名無しさん
06/11/16 21:55:51
Why?
406:デフォルトの名無しさん
06/11/16 23:34:42
MIT is phasing out 6.001.
407:デフォルトの名無しさん
06/11/17 01:47:50
後継の講座は Python らしいね
408:デフォルトの名無しさん
06/11/17 01:50:43
CMUCL か
409:デフォルトの名無しさん
06/11/17 01:57:32
そのボケ方は
Lisper 以外にはまったく通じないんだぜ?
410:デフォルトの名無しさん
06/11/17 02:00:38
ここに Lisper 以外がいるとでも?
411:デフォルトの名無しさん
06/11/17 18:58:34
リスパー伊東
412:デフォルトの名無しさん
06/11/17 19:06:51
CASIO AI-1000
413:デフォルトの名無しさん
06/11/18 06:20:48
schemeのcurrent-continuationは失敗だと思う。
それだったらgccみたいなLabel as Valueとcurrent-environment
を導入してくれた方がありがたい。
協調型スレッドもどきを作れたとしても、コストが掛かりすぎる。
IPとその時の環境が見えればccは実装できるんだから、
個別に取得できるようにすべきだった。
414:デフォルトの名無しさん
06/11/19 06:27:57
今までSchemeには予約語がないと思っていたけど、R5RSを見ると
defineとかの<syntactic keyword>は<variable>に含まれないので
予約語なのね。大抵の処理系では束縛できてしまうから、知らなかった。
415:398
06/11/19 12:16:10
(format nil "~a" ■)
cのfprintfみたいなもの。
(write-to-string ■)
javaのSystem.out.print()みたいなもの
(defmethod print-object ((object ■) stream)
...)
オブジェクト指向をした場合の
JavaのtoStringのメソッド的なもの
と理解しててよいのでしょうか?
416:デフォルトの名無しさん
06/11/19 16:15:06
アナロジーは理解の助けになる場合もあるが、例え話だけで理解したつもりになるのは
危険でもある。「理解しててよいのでしょうか」と聞かれたら「駄目」と答えるだろう。
それ以上のことをきちんと知りたいなら、ちゃんと勉強したほうがいい。
417:デフォルトの名無しさん
06/11/19 16:17:39
つか write-to-string の例えは違うんじゃね
418:デフォルトの名無しさん
06/11/19 16:30:17
toString() に一番近いのは write-to-string だろうな
419:デフォルトの名無しさん
06/11/20 01:18:44
何でみんな MIT Scheme 使わないの?
420:デフォルトの名無しさん
06/11/20 01:23:20
なんで MIT Scheme 使うの?
421:デフォルトの名無しさん
06/11/20 01:38:47
Scheme 界では数少ないネイティブコンパイラやん。
他はネイティブでも JIT とかトランスレータとかやん。
422:デフォルトの名無しさん
06/11/20 01:48:42
その割に遅かった希ガス(最近試してないけど)
423:デフォルトの名無しさん
06/11/20 04:03:44
同じく最近試してないけど、unicode 周りが悪夢のようなことになっていたような。
424:デフォルトの名無しさん
06/11/20 06:44:12
FreeBSD 6 で SBCL 使ってる人、テストに協力してくだされ。
URLリンク(article.gmane.org)
URLリンク(article.gmane.org)
425:デフォルトの名無しさん
06/11/20 13:22:45
>>424
weft didn't produce an output.
といって表示されねーので説明きぼんぬ。
426:デフォルトの名無しさん
06/11/20 14:37:56
>>425
SBCL のスレッドを FreeBSD で動かすパッチです。
Google Groups の archive
URLリンク(groups.google.com)
URLリンク(groups.google.com)
427:デフォルトの名無しさん
06/11/20 15:56:58
caseを試してみましたが、
SCMでは
(case 'hoge (('hoge) #t) (else #f)) => #f
となってしまいます。
(eqv? 'hoge 'hoge) => #t
なのに、なぜ最初の式では#tが返らないのでしょうか。
428:デフォルトの名無しさん
06/11/20 16:04:19
(case 'hoge ((hoge) #t) (else #f)) => #t
caseラベルは定数しか書けないので、暗黙にquoteされる
429:427
06/11/20 16:31:41
>428
教えていただいてから気がついて、
r5rs 7.3のcaseのコードを読み直してみたら、
(if (memv key '(atom ...)) ...
となっているのを確認しました。
ありがとうございます。
430:デフォルトの名無しさん
06/11/20 23:12:24
>>413
同意
431:デフォルトの名無しさん
06/11/20 23:46:49
>>424
CVS に取り込まれたみたいだね。お疲れさん。
俺は FreeBSD ユーザじゃないので試せないけど。
432:デフォルトの名無しさん
06/11/21 07:27:09
>>424
乙。
433:デフォルトの名無しさん
06/11/21 11:28:26
>>424
神パッチキターーこれで FreeBSD でもスレッドが!! うひょぉ
434:デフォルトの名無しさん
06/11/23 08:41:03
ところで、昨日一昨日のFranzセミナーの件はどうなったの?
435:デフォルトの名無しさん
06/11/23 09:48:12
>>413
禿げ上がる程同意
436:デフォルトの名無しさん
06/11/23 15:16:59
>>435が10年後に悔やむスレになりそうだ。
437:デフォルトの名無しさん
06/11/23 15:31:18
誰かLispで2chブラウザ作って!
438:デフォルトの名無しさん
06/11/23 15:53:13
>>437
あるだろ。
439:デフォルトの名無しさん
06/11/23 18:36:08
詳しく
440:デフォルトの名無しさん
06/11/23 18:47:02
navi2ch?
441:デフォルトの名無しさん
06/11/23 19:30:41
なるほど、そゆことか
442:デフォルトの名無しさん
06/11/23 22:47:16
>>437
rep2好きの俺だがKahuaとかで2chブラウザ作ったら面白そうだな
443:デフォルトの名無しさん
06/11/24 02:27:42
Kahuaで2chブラウザとかワロスwwwwwwwwwwwwwww
444:デフォルトの名無しさん
06/11/24 02:45:21
なにそれ?Webアプリになってるってこと?
445:デフォルトの名無しさん
06/11/24 08:37:19
>>444
rep2ってphpでかかれた2chブラウザって言うか補助サーバがあるんよ。
(ブラウザって言うのにすごい抵抗があるんだが)
446:デフォルトの名無しさん
06/11/26 18:51:55
Schemeで
(string->???? "(lambda () 5)")
> 5
となるような関数ってありますか?
447:デフォルトの名無しさん
06/11/26 19:06:31
作ればある。でも宿題ならもうちょっとちゃんと問題文を書かないと…
[リストの三番目を返す?]
gosh> (define (string->???? str) (caddr (read-from-string str)))
string->????
gosh> (string->???? "(lambda () 5)")
5
[関数を評価する?]
gosh> (define (string->???? str) ((eval (read-from-string str) ())))
string->????
gosh> (string->???? "(lambda () 5)")
5
448:446
06/11/26 19:21:57
>>446
ありがとうございました。自作CUIにコピペさせて頂きます。
で、[関数を評価する]がしたかったのです。
類推で (string->list string) としたら
◯| ̄|_ だったもので…
449:デフォルトの名無しさん
06/11/26 22:10:11
◯| ̄|_がかえってくる関数
450:デフォルトの名無しさん
06/11/27 09:36:00
なるほどなあ。
string->number等との類推で考えればstring->listをread-from-stringみたいに
考えるのも一つの解釈か。
451:デフォルトの名無しさん
06/11/27 12:57:27
.NETでつかえるSchemeの実装ないですか
それあればそれなりに強力なライブラリと使える言語の両方が手に入るのに・・・(´・ω・`)
452:デフォルトの名無しさん
06/11/28 04:02:35
触ったことはないけど。
URLリンク(www.ccs.neu.edu)
453:デフォルトの名無しさん
06/11/28 06:44:04
◯| ̄|_
○| ̄|_
微妙に丸の文字が違うな。
454:デフォルトの名無しさん
06/11/28 07:01:54
◯◯◯
◯◯◯◯◯
◯| ̄|_ ̄ |◯ プカプカ
~~~~~~~~~~~~~~~~~~~~~~~~
455:デフォルトの名無しさん
06/11/29 11:37:32
◯| ̄|_
○| ̄|_
◯| ̄|_
○| ̄|_
◯| ̄|_
○| ̄|_
|
|
|
456:デフォルトの名無しさん
06/11/30 15:15:55
SBCL 1.0!
457:デフォルトの名無しさん
06/12/01 05:32:39
遂に来たね。
458:デフォルトの名無しさん
06/12/01 20:20:00
srfiのtexiって無いですか?
infoでも良いんですが。
できれば全部揃っているとうれしいです...
459:デフォルトの名無しさん
06/12/01 20:34:05
URLリンク(slashdot.jp)
460:デフォルトの名無しさん
06/12/02 09:17:04
うわぁ。さすがスラドだね。
461:デフォルトの名無しさん
06/12/02 12:48:20
あらためて思うけどCLの実装系ていいよね
ちゃんと仕様のあるバカでかい関数群が確実にあるんだから
462:デフォルトの名無しさん
06/12/02 13:20:10
>>461
そうだね。よく「仕様が巨大」とか言われるけど、今の基準ではそれほどでもないと思う。
(JavaのクラスライブラリとかSRFIを全部入れたSchemeのほうが大きいんじゃないかな)
でも、そろそろXMLとかネットワークとかのいまどきの機能を加えたCLtL3を制定してほしい。