Lisp Scheme Part21
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2008/04/04(金) 18:18:17Part20: ttp://pc11.2ch.net/test/read.cgi/tech/1205021786/
Part19: ttp://pc11.2ch.net/test/read.cgi/tech/1200237296/
Part18: ttp://pc11.2ch.net/test/read.cgi/tech/1186922295/
Part17: ttp://pc11.2ch.net/test/read.cgi/tech/1177065699/
Part16: ttp://pc11.2ch.net/test/read.cgi/tech/1172404795/
Part15: ttp://pc10.2ch.net/test/read.cgi/tech/1151025773/
Part14: ttp://pc8.2ch.net/test/read.cgi/tech/1132275726/
Part13: ttp://pc8.2ch.net/test/read.cgi/tech/1115901841/
Part12: ttp://pc8.2ch.net/test/read.cgi/tech/1100229366/
Part11: ttp://pc5.2ch.net/test/read.cgi/tech/1091456033/
Part10: ttp://pc5.2ch.net/test/read.cgi/tech/1075630259/
Part9: ttp://pc2.2ch.net/test/read.cgi/tech/1069594582/
Part8: ttp://pc5.2ch.net/tech/kako/1058/10582/1058263391.html
Part7: ttp://pc5.2ch.net/tech/kako/1042/10421/1042167213.html
Part6: ttp://pc3.2ch.net/tech/kako/1031/10315/1031560687.html
Part5: ttp://pc3.2ch.net/tech/kako/1023/10230/1023091882.html
Part4: ttp://pc.2ch.net/tech/kako/1016/10162/1016211619.html
Part3: ttp://pc.2ch.net/tech/kako/1008/10082/1008220265.html
Part2: ttp://pc.2ch.net/tech/kako/1002/10025/1002584344.html
Part1: ttp://piza2.2ch.net/tech/kako/987/987169286.html
0002デフォルトの名無しさん
2008/04/04(金) 18:18:56日本Lispユーザ会(日本語)
ttp://jp.franz.com/jlug/index.html
ここにかなりの情報があります。 削るとAllegro Common Lispのページへ
プログラミング言語Scheme(日本語)
ttp://www.sci.u-toyama.ac.jp/~iwao/Scheme/scheme.html
Schemeの人はまずここを見ましょう。
Schemeへの道(日本語)
ttp://www.stdio.h.kyoto-u.ac.jp/~hioki/gairon-enshuu/SchemeNotes/scheme.html
ここはschemeの入門サイト。
Practical Scheme(日本語)
ttp://practical-scheme.net/index-j.html
「普通のやつらの上を行け」など、興味深い文書を沢山翻訳されてます。
(Gaucheという完成度の高いscheme処理系作者さんのページでもあります。)
LispUser.net
ttp://lispuser.net/
0003デフォルトの名無しさん
2008/04/04(金) 18:19:16CLtL2: Common Lisp the Language 2nd edition
ttp://www-2.cs.cmu.edu/Groups/AI/html/cltl/cltl2.html
CLHS: Common Lisp Hyper Spec
ttp://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/FrontMatter/Chapter-Index.html
R5RS: Revised(5) Report on the Algorithmic Language Scheme (ja)
ttp://www.sci.u-toyama.ac.jp/~iwao/Scheme/r5rsj/html/r5rsj.html
R5RS: Revised(6) Report on the Algorithmic Language Scheme (en)
ttp://www-swiss.ai.mit.edu/~jaffer/r5rs_toc.html
R6RS: Revised(6) Report on the Algorithmic Language Scheme
ttp://www.r6rs.org/final/html/r6rs/r6rs.html
0004デフォルトの名無しさん
2008/04/04(金) 18:19:39SICP(英語)
ttp://mitpress.mit.edu/sicp/full-text/book/book.html
「計算機プログラムの構造と解釈」の原書です。 全てオンラインで読めます。
計算機プログラムの構造と解釈 第二版 (snip) に関連するホームページ
ttp://sicp.ipl.t.u-tokyo.ac.jp/
□wikipedia関連□
http://ja.wikipedia.org/wiki/LISP
http://ja.wikipedia.org/wiki/Common_Lisp
http://ja.wikipedia.org/wiki/Scheme
□継続□
なんでも継続
ttp://practical-scheme.net/docs/cont-j.html
Schemeへの道:継続
ttp://www.stdio.h.kyoto-u.ac.jp/~hioki/gairon-enshuu/SchemeNotes/continuation.html
継続の使い方
ttp://www.geocities.co.jp/SiliconValley-PaloAlto/7043/index.html#continuation
継続の使用法
ttp://www.ice.nuie.nagoya-u.ac.jp/~h003149b/lang/block.html
Kahua: 継続ベースのアプリケーションサーバー
ttp://www.kahua.org/
0005デフォルトの名無しさん
2008/04/04(金) 18:20:23John McCarthy's Home Page
ttp://www-formal.stanford.edu/jmc/
LISPの生みの親、J・マッカーシーのページだそうです。
Association of Lisp Users 米国のLispユーザ会
ttp://www.alu.org/alu/home
CMUのLisp Repository 新旧様々なプログラムが置いてある
ftp://ftp.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/lisp/0.html
The Common Lisp Cookbook: いわゆる Cookbook
ttp://cl-cookbook.sourceforge.net/
Bibliography of Scheme-related Research Scheme関連の論文リンク集
ttp://library.readscheme.org/
Scheme Hash(英語) S式でXMLを使える様にするSXMLなど
ttp://okmij.org/ftp/Scheme/index.html
幻の「入門Scheme」 オンラインで読める
ttp://www4.ocn.ne.jp/~inukai/scheme_primer_j.html
各種scheme処理系をcygwin上からビルドする方法など。
ttp://www.geocities.co.jp/SiliconValley-PaloAlto/7043/
encyCMUCLopedia (cmucl以外でも有益なはず )
ttp://www.isr.ist.utl.pt/library/docs/encycmuclopedia/doc/
0006デフォルトの名無しさん
2008/04/04(金) 18:22:06独習 Scheme 三週間 (Schemeの教科書 )
ttp://www.sampou.org/scheme/t-y-scheme/t-y-scheme-Z-H-1.html
Cliki (CLコードがたくさん紹介されている。)
ttp://www.cliki.net/index
よろずや (lispの実用的な情報が色々。 )
ttp://www.geocities.co.jp/SiliconValley-SanJose/7474/
Common-Lisp.net: 多くのプロジェクトがホスティングされてる
ttp://common-lisp.net/
Practical Common Lisp: S式の羅列で現実的な問題をどう解くのかそのギャップに悩まされてる人に
ttp://www.gigamonkeys.com/book/
SLIB
ttp://www-swiss.ai.mit.edu/~jaffer/SLIB.html
SRFI
ttp://srfi.schemers.org/
Meadow memo: 2ちゃんねるログ(dat落ちした過去スレの一部が見られます。 )
ttp://www.bookshelf.jp/2ch/index.html
Lispとは何か
ttp://www.asahi-net.or.jp/%7Eki4s-nkmr/lisp20061121/lisp.html
0007デフォルトの名無しさん
2008/04/04(金) 18:22:42Bit (mini-schemeよりも小さい(?)bytecode変換系 )
ttp://www.iro.umontreal.ca/~dube/
Lisp 言語処理系: CAMPUS LIsP, Lemon version (Cでわずか1000行)
ttp://www-masu.ist.osaka-u.ac.jp/~kakugawa/hacks/clisp/
Schemix (Linuxのkernelへのパッチで/dev/として扱えるTinyScheme )
ttp://www.abstractnonsense.com/schemix/
awkで書かれたわずか500行のLispインタプリタ
ttp://www.accesscom.com/~darius/
Bigloo CLR 用のコードを吐けるようになったらしい
ttp://www-sop.inria.fr/mimosa/fp/Bigloo/
SECDR-Scheme: SECD machine model に基づく実装
ttp://lily.fan.gr.jp/~kmd/adhoc/view.rhtml?n=SECDR-Scheme_woyomu
Minischeme: 1 ファイルに凝縮された Scheme 処理系
ttp://tinyscheme.sourceforge.net/minischeme.tar.gz
TinyScheme: Minischeme を色々弄ったもの
ttp://tinyscheme.sourceforge.net/
KI-Scheme, AM-Scheme, etc...
ttp://www.nifty.com/download/dos/prog/lisp/
LispMe: Palm 上で動く Scheme 処理系. これも SECD virtual machine.
ttp://www.lispme.de/lispme/
0008デフォルトの名無しさん
2008/04/04(金) 18:23:15Gauche: R5RS準拠のScheme処理系。Shiro Kawaiさん作。書籍も出版されました。
ttp://practical-scheme.net/gauche/index-j.html
PLT Scheme: DrScheme、MzSchemeなどのR5RS準拠および独自拡張のScheme処理系
ttp://www.plt-scheme.org/
Scheme48: R5RS準拠のSchemeのバイトコードインタプリタ
ttp://www.s48.org/
Guile: GNUの拡張プログラミング言語
ttp://www.gnu.org/software/guile/
Gambit-C: R5RS準拠のScheme処理系
ttp://www.iro.umontreal.ca/~gambit/wiki/index.php/Main_Page
Steel Bank Common Lisp: Common Lisp処理系
ttp://www.sbcl.org/
CMUCL: Common Lisp処理系
ttp://www.cons.org/cmucl/
GNU CLISP: Common Lisp処理系
ttp://www.clisp.org/
Embeddable Common Lisp: Common Lisp処理系
ttp://ecls.sourceforge.net/
Arc: ポール・グレアム氏が作成した新しいLisp
ttp://arclanguage.org/
0009デフォルトの名無しさん
2008/04/04(金) 18:23:42GaucheNight(2008-03-08)
ttp://practical-scheme.net/wiliki/wiliki.cgi?gauche.night
SchemeとGaucheとλとS式を愛するすべての人に贈るマクロな一夜。
川合史朗、伊藤篤、山下伸夫、笹田耕一、ひげぽん、zick、黒田寿男、えんどうやすゆき、ほか
GaucheNight(2007-05-09)
ttp://practical-scheme.net/wiliki/wiliki.cgi?GaucheNight%3a2007
川合史朗、黒田寿男、まつもとゆきひろ(Skype中継)、小飼弾、
伊東勝利、久井亨、小黒直樹、ほか
黒田氏関係 (黒板の人)
ttp://pc10.2ch.net/test/read.cgi/tech/1151025773/901-909
ttp://cl-www.msi.co.jp/solutions/knowledge/lisp-world/articles/scheme
Scheme:マクロ:CommonLispとの比較
ttp://practical-scheme.net/wiliki/wiliki.cgi?Scheme%3a%e3%83%9e%e3%82%af%e3%83%ad%3aCommonLisp%e3%81%a8%e3%81%ae%e6%af%94%e8%bc%83
Script Languages
ttp://cl-www.msi.co.jp/solutions/knowledge/lisp-world/articles/script-lang
0010デフォルトの名無しさん
2008/04/04(金) 18:24:37<プログラミングGauche>
・著者:川合史朗 監修 Kahuaプロジェクト 著
・定価:3360円(本体3200円+税)
・B5変 524頁
・ISBN 978-4-87311-348-7
・発売日:2008/03/14
Scheme処理系言語Gauche(ゴーシュ)の初の解説書!
ttp://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?&ISBN=978-4-87311-348-7
立ち読み版
ttp://karetta.jp/book/gauche-hacks
<On Lisp>
・著者:Paul Graham 著 野田 開 訳
・定価:3990円(本体3800円+税)
・A5 440頁
・ISBN 978-4-274-06637-5
LispハッカーPaul Grahamが、Lispの力の源泉であるマクロプログラミングを解説
ttp://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=978-4-274-06637-5
HTML版
ttp://user.ecc.u-tokyo.ac.jp/~tt076524/onlispjhtml/
0011デフォルトの名無しさん
2008/04/04(金) 18:26:48【入門】Common Lisp その4【質問よろず】
ttp://pc11.2ch.net/test/read.cgi/tech/1201402366/
【CGI】実用比較Lisp vs C/C++【GUI】
ttp://pc11.2ch.net/test/read.cgi/tech/1150501484/
【魔法】リリカル☆Lisp【言語】
ttp://pc11.2ch.net/test/read.cgi/tech/1183396621/
Lisp@UNIX版
ttp://pc11.2ch.net/test/read.cgi/unix/1019926525/
Emacs Lisp 3
ttp://pc11.2ch.net/test/read.cgi/tech/1191875993/
【ヤパーリ】XMLをS式に置換えていくスレ【LISP最強】
ttp://pc11.2ch.net/test/read.cgi/tech/1140006937/
【SICP】計算機プログラムの構造と解釈 Part2
ttp://pc11.2ch.net/test/read.cgi/tech/1203096230/
【普通のやつらの】 Arc Language 0 【上を行け】
ttp://pc11.2ch.net/test/read.cgi/tech/1202098949/
0012デフォルトの名無しさん
2008/04/04(金) 18:27:45http://www.scheme.com/tspl3/
0013デフォルトの名無しさん
2008/04/04(金) 18:36:37※LispとSchemeのスレです。
0014デフォルトの名無しさん
2008/04/04(金) 18:42:020015デフォルトの名無しさん
2008/04/04(金) 18:45:120016デフォルトの名無しさん
2008/04/04(金) 20:03:18ワラタ
;;;蕎麦で喧嘩するんだぜきっとw
0017デフォルトの名無しさん
2008/04/04(金) 20:35:56☆初心者が集うIRC(布教してくれる先生も大募集です)
irc.scenecritique.com
port 6667
チャンネル #Lisp_Scheme
クライアントはcottonあたりが誰でも使いやすいと思います
(LisperならEmacsでつないだ方がいいかもしれませんが)
※IRCはつないだまま離席している人が結構いるので即返答がないことも。気長に待ちましょう
現在cdrcdrな感じですが宜しくお願いします
0018デフォルトの名無しさん
2008/04/05(土) 18:36:35If you give someone Lisp,
0019デフォルトの名無しさん
2008/04/05(土) 18:38:45って(略
0020デフォルトの名無しさん
2008/04/05(土) 23:26:57(define C
(lambda (n k)
(if (eq? k 0) 1
(* (/ n k) (C (- n 1) (- k 1))))))
(display (C 5 2))
⇒10
(define C
(lambda (n k)
(if (eq? k 0) 1
(if (eq? n k) 1
(+ (C (- n 1) (- k 1))
(C (- n 1) k))))))
(display (C 5 2))
⇒10
0021デフォルトの名無しさん
2008/04/05(土) 23:51:04ttp://codepad.org/TU5segMo
0022デフォルトの名無しさん
2008/04/06(日) 00:01:39(define Y
(lambda (X)
((lambda (procedure)
(X (lambda (arg) ((procedure procedure) arg))))
(lambda (procedure)
(X (lambda (arg) ((procedure procedure) arg)))))))
(define (Fact my-fact)
(lambda (n)
(if (= n 0)
1
(* n (my-fact (- n 1))))))
(define fact (Y Fact))
(define P
(lambda (n r)
(/ (fact n) (fact r))))
(display (P 4 2))
0023デフォルトの名無しさん
2008/04/06(日) 00:15:16順列ですから
0024デフォルトの名無しさん
2008/04/06(日) 00:59:05(define P
(lambda (n r)
(/ (fact n) (fact (n-r)))))
0025デフォルトの名無しさん
2008/04/06(日) 01:00:53(lambda (n r)
(/ (P n r) (fact r))))
0026デフォルトの名無しさん
2008/04/06(日) 01:08:320027デフォルトの名無しさん
2008/04/06(日) 02:26:550028デフォルトの名無しさん
2008/04/06(日) 02:29:150029デフォルトの名無しさん
2008/04/06(日) 02:52:110030デフォルトの名無しさん
2008/04/06(日) 03:40:24Gaucheは俺の既定スクリプト言語になりました。
0031デフォルトの名無しさん
2008/04/06(日) 05:04:450032Lisp1.5
2008/04/06(日) 09:21:260033デフォルトの名無しさん
2008/04/06(日) 17:29:370034デフォルトの名無しさん
2008/04/06(日) 18:14:290035デフォルトの名無しさん
2008/04/06(日) 18:57:57internされてて欲しいとき(キーになるもの等)はシンボル
頻繁に作ったり壊したりするならストリング
極めて頻繁にコンペアするならシンボル
とりあえず、デフォルトはストリングだな
0036デフォルトの名無しさん
2008/04/06(日) 19:04:420037デフォルトの名無しさん
2008/04/06(日) 21:05:54Lisp1.5ってなあ。
0038デフォルトの名無しさん
2008/04/07(月) 12:05:35=> (S Y M B O L)
0039デフォルトの名無しさん
2008/04/07(月) 19:00:23簡単な方から挑戦してみようと思ってます。
0040デフォルトの名無しさん
2008/04/07(月) 21:27:55toy problem解いただけで実際の複雑な問題に適用できないの多くないですか?
ある程度泥臭いこともやる人がいないからなのかな
0041デフォルトの名無しさん
2008/04/07(月) 21:34:57kwsk
0042デフォルトの名無しさん
2008/04/07(月) 21:35:06そのプロジェクトってどれよ?
#うちの社内プロジェクトだったらいろんな意味で笑う
0043デフォルトの名無しさん
2008/04/07(月) 21:35:330044デフォルトの名無しさん
2008/04/07(月) 22:15:100045デフォルトの名無しさん
2008/04/07(月) 22:21:15ttp://www.unixuser.org/~euske/doc/python/python-lisp-j.html
0046デフォルトの名無しさん
2008/04/07(月) 22:36:06そういうネタの露出度が高いだけでは?
0047デフォルトの名無しさん
2008/04/07(月) 22:44:19read関数って空白類記号(スペース、タブ、改行)は読み飛ばすのか?
0048デフォルトの名無しさん
2008/04/07(月) 22:47:090049デフォルトの名無しさん
2008/04/07(月) 23:50:45アリガト
0050デフォルトの名無しさん
2008/04/08(火) 00:43:10Pythonマシンとかつくってから出直してこい
0051デフォルトの名無しさん
2008/04/08(火) 00:51:400052デフォルトの名無しさん
2008/04/08(火) 07:40:06Prologで書かれたpmacsなら昔使ってたなあ。
入社したら新人教育がLisp班とProlog班に分かれて、俺はProlog班だった。
0053デフォルトの名無しさん
2008/04/08(火) 09:37:550054デフォルトの名無しさん
2008/04/08(火) 10:03:54AIバブル全盛期にはあったんだよね。
俺がやったPrologはFM-8上のCP/Mで動くmicro-PLOLOGという丸括弧で括るPrologだった。
pmacsを使ったのはそれとは別のワークステーションで、小型冷蔵庫ぐらいの筐体だったよ。
0055デフォルトの名無しさん
2008/04/08(火) 11:28:48swigよりも高度なことができるcffiのwrapper toolを試してみました
しかし少し複雑なc++コードを与えるとエラーをおこして止まります
基のc++コードを自動でwrapが生成できようにいじるべきか
それとも自動はあきらめて手書きした方がいいのでしょうか?
pythonなら自動でwrapを作成できるみたいなので
pythonを経由してlispから呼ぶという2度手間という手もできるのでしょうか?
0056デフォルトの名無しさん
2008/04/08(火) 12:27:560057デフォルトの名無しさん
2008/04/08(火) 13:01:22ワロタw
今でもそんな会社があるなら入社してみたい
0058デフォルトの名無しさん
2008/04/08(火) 13:18:24Micro-PROLOGですぜ、旦那。
"Programming in Logic"読んだ口ですか?
Lisp班の環境は? muLispとか?
0059デフォルトの名無しさん
2008/04/08(火) 16:57:05昭和時代ならあり得る話
0060デフォルトの名無しさん
2008/04/08(火) 19:08:220061デフォルトの名無しさん
2008/04/08(火) 19:25:210062デフォルトの名無しさん
2008/04/08(火) 19:33:220063デフォルトの名無しさん
2008/04/08(火) 19:49:41> "Programming in Logic"読んだ口ですか?
はっきり覚えていないけど教材は手作りだったような。
> Lisp班の環境は? muLispとか?
名前は忘れたけど日立のプラズマ(赤色1色)Laptop(DOS 16bit)で動いている
マルチウインドウのLispだった。Common Lispだったかどうかは分からない。
あとこの会社にはXerox J-Starもあったよ。俺が入って1〜2年で廃棄されたが。
0064デフォルトの名無しさん
2008/04/08(火) 19:56:27muLISP/86 on MS-DOSの可能性大
0065デフォルトの名無しさん
2008/04/08(火) 19:57:080066デフォルトの名無しさん
2008/04/08(火) 22:53:36息をするようにlambdaを書く。
そんな人にわたしはなりたい。
0067デフォルトの名無しさん
2008/04/08(火) 23:09:16学習して賢くなる関数。
0068デフォルトの名無しさん
2008/04/08(火) 23:12:54可能。
0069デフォルトの名無しさん
2008/04/08(火) 23:18:570070デフォルトの名無しさん
2008/04/08(火) 23:29:220071デフォルトの名無しさん
2008/04/08(火) 23:31:240072デフォルトの名無しさん
2008/04/08(火) 23:55:57走行中 かつ 周辺が暗い ならば 点灯、という論理で動作してるな
0073デフォルトの名無しさん
2008/04/09(水) 00:14:07できる。つーか、そんなのアセンブラでもできるだろ。w
0074デフォルトの名無しさん
2008/04/09(水) 00:16:140075デフォルトの名無しさん
2008/04/09(水) 00:48:580076デフォルトの名無しさん
2008/04/09(水) 10:30:54Yコンビネータを使ったメモ化
http://citeseer.ist.psu.edu/mcadams01practical.html
0077デフォルトの名無しさん
2008/04/09(水) 12:40:09書き換えるのは簡単だが、賢くするのは難しい。w
0078デフォルトの名無しさん
2008/04/09(水) 14:32:38007967
2008/04/09(水) 18:04:46Schemeでdefineを使って定義した内容をリストとして取り出し、
書き換えて自分自身を再定義するってことを考えてました。
自らアルゴリズムを改良していくとかできたらおもしろいなぁって。
夢物語だけれども人造人間キカイダーのように思考し、反省し、学習するプログラム
があったらおもしろいだろうね。
0080デフォルトの名無しさん
2008/04/09(水) 18:14:270081デフォルトの名無しさん
2008/04/09(水) 18:53:440082デフォルトの名無しさん
2008/04/09(水) 19:43:42今でもあるよ
0083デフォルトの名無しさん
2008/04/09(水) 19:48:480084デフォルトの名無しさん
2008/04/09(水) 19:50:58うずらか〜!
0085デフォルトの名無しさん
2008/04/09(水) 20:08:520086デフォルトの名無しさん
2008/04/09(水) 21:03:31大きいプログラムを呼ぼうとする
glibc detected *** sbcl: malloc corruption
で止まる。何か対策ないのでしょうか?
0087デフォルトの名無しさん
2008/04/09(水) 21:05:43プログラムの大きさかデータの大きさか、
具体的にどのくらいより大きいと駄目なのか、
その辺をいろいろ実験してみると有意義であろう。
0088デフォルトの名無しさん
2008/04/09(水) 21:12:24#include <stdio.h> //ここが問題
int test(int i){
return 0;
}
008988
2008/04/09(水) 21:25:190090デフォルトの名無しさん
2008/04/09(水) 21:28:53それを聞く前に、普通は起きた処理系が何かを書くもんじゃないかい?
009188
2008/04/09(水) 21:30:210092デフォルトの名無しさん
2008/04/09(水) 21:36:53#includeを抜くと大丈夫なんだよね?
OSは何?
0093デフォルトの名無しさん
2008/04/09(水) 21:49:26defineで定義した関数をリストとして取り出すことはschemeでは(少なくとも規格内の方法では)出来ない。
009488
2008/04/09(水) 23:36:130095デフォルトの名無しさん
2008/04/10(木) 00:30:35【HAL-9000 series】
映画版では1992年1月12日、クラークによる小説版では1997年同日に、イリノイ大学アーバナ・シャンペーン校にて誕生した。
開発者はシバサブラマニアン・チャンドラセガランピライ、通称チャンドラ博士。
HALはIBMを1文字ずつ前にずらして命名された。
小説『2010年宇宙の旅』では、チャンドラー博士自らIBM説を否定した。
が、アーサー・C・クラークは後年になってからIBM社がこの説を迷惑がっているどころか半ば自慢しているらしいと聞き及び、
著書「3001年終局への旅」のあとがきで「今後はこの説の間違いを正す試みを放棄する」と記した。
スペースシャトルの機上コンピュータには、高い信頼性を確保するためにシャトル専用のプログラミング言語が用いられており、これを「HAL/S」という。
「HAL/S」を構築したIntermetrics社の創業者は、大学の同僚でこの言語のコンセプト構築に多大な貢献があった J. Halcombe Laning 博士に敬意を表し、
彼の通称 Hal に因んで HAL と命名した。
しかしこれがいかにもくどく不自然なことから、やはり「HAL/S」は「HAL 9000」に因んだものという憶測が浸透した。
ちなみにシャトルの三番機、OV-103の船名は「ディスカバリー号」となっており、『2001年宇宙の旅』との関連が噂された。
奇しくもスペースシャトル史上2度の大事故の後の初飛行はいずれもこの機体である。
0096デフォルトの名無しさん
2008/04/10(木) 00:41:51The IBM AP-101 is an avionics computer, used most notably in the U.S. Space Shuttle, but also in the B-52 and F-15, among others.
When it was designed, it was a high-performance pipelined processor with core memory.
Today, its specifications are exceeded by many microprocessors.
The AP-101, being the top-of-the-line of the System/4 Pi range, shares its general architecture with the System/360 mainframes.
The shuttle software is written in HAL/S, a special-purpose high-level language, whereas AP-101s used by the US Air Force are mostly programmed in JOVIAL.
0097デフォルトの名無しさん
2008/04/10(木) 01:44:53遺伝的アルゴリズムを調べろ。
アクセス規制だから詳細は書けない。
0098デフォルトの名無しさん
2008/04/10(木) 01:50:06アクセス規制で携帯だから、他で調べろ
0099デフォルトの名無しさん
2008/04/10(木) 02:09:52確かにLISP向きな感じがするね
0100デフォルトの名無しさん
2008/04/10(木) 02:40:03Y そのままだとやりにくいんじゃないかな。
二関数での相互再帰なら
(Y2 f g) = (f (Y2 f g) (Y2 g f))
みたいに拡張するとか。
0101デフォルトの名無しさん
2008/04/10(木) 03:31:54ぶくぶく
0102デフォルトの名無しさん
2008/04/10(木) 07:08:50LispハッカーはXMLという妥協を受けいれ、
メインストリームに帰り咲くのだ
0103デフォルトの名無しさん
2008/04/10(木) 09:34:46SOAPバブルと同じ運命って気がするんだけど
0104デフォルトの名無しさん
2008/04/10(木) 13:34:130106デフォルトの名無しさん
2008/04/10(木) 21:35:57ノシ
0107デフォルトの名無しさん
2008/04/10(木) 21:42:060108デフォルトの名無しさん
2008/04/10(木) 21:51:32Open Programming環境では動かなかったってこと?純正SDKでしか試してないならNDAあるから書けないかw
0109デフォルトの名無しさん
2008/04/10(木) 21:57:200110デフォルトの名無しさん
2008/04/10(木) 23:22:07�d。参考になりました。
Zaurusポートもそうだけど、Open Programming環境では問題点が出ることが多いのに、純正では大丈夫だったのはちょっと驚き。
0111デフォルトの名無しさん
2008/04/11(金) 00:15:52ttp://www.htdp.org/
たまげた。折角本を購入したのに、こっちのが充実してる。 orz
0112デフォルトの名無しさん
2008/04/11(金) 01:39:50分厚いな 読む暇も気力もない
0113デフォルトの名無しさん
2008/04/11(金) 05:48:470114デフォルトの名無しさん
2008/04/11(金) 23:05:11ttp://codepad.org/cWiNn5qr
18章の出だしでリストが返ってくるような書き方が良くないと思う。
この二つを比べてみるとconsとkonsの違いがわかる。
(kdisplay (lots 5))
(display (lots 5))
0115デフォルトの名無しさん
2008/04/11(金) 23:33:05(define kdisplay
(lambda (c)
(c (lambda (a d)
(cond
((null? a)(display ""))
(else (display "(")
(display a)
(k2display d)
(display ")")
(newline)))))))
(define k2display
(lambda (e)
(cond
((null? e)(display ""))
(else
(e (lambda (a2 d2)
(display " ")
(display a2)
(k2display d2)))))))
0116デフォルトの名無しさん
2008/04/12(土) 02:41:52参考になるコードまたはパッケージなどないでしょうか?
0117デフォルトの名無しさん
2008/04/12(土) 05:42:170118デフォルトの名無しさん
2008/04/12(土) 09:38:50Common LispやSchemeのコードは知らないけど、
Emacs LispでAtomに対応してるのが二、三あったはず。
参考にするだけなら、PerlやPythonやRubyとかのが、
いくらでもありそうだけど。
ぶっちゃけ、処理自体は全然難しくないんで、
Atomとかのリファレンス見ながら自分で実装しても、
あまり苦労はしないと思う。自分でやろうとしたときは、
UI書くのが一番だるそうだと思った。
0119デフォルトの名無しさん
2008/04/12(土) 13:27:05あっわかった!!
ん? こういう場合は。。。
これの繰り返し
0120デフォルトの名無しさん
2008/04/12(土) 16:41:02本のとおりに打ち込んで実行しても (addx 10) が110にならずに
11になってしまいます。本に誤記はありますか?
0121120
2008/04/12(土) 16:47:07失礼しました。
0122デフォルトの名無しさん
2008/04/12(土) 20:14:44xml-rpcがつかえるブログなら、gaucheのxml-rpcライブラリがある。サードパーティーだけど。
ぐぐればすぐ見つかる。
0123デフォルトの名無しさん
2008/04/12(土) 23:35:41SRFI-40のストリームが使えた。
0124デフォルトの名無しさん
2008/04/12(土) 23:47:53PLT Scheme用のモナドがあるらしい。使った人?
ノシ
0125デフォルトの名無しさん
2008/04/13(日) 00:39:490126デフォルトの名無しさん
2008/04/13(日) 00:44:510127デフォルトの名無しさん
2008/04/13(日) 00:51:220128デフォルトの名無しさん
2008/04/13(日) 01:58:430129デフォルトの名無しさん
2008/04/13(日) 02:00:250130デフォルトの名無しさん
2008/04/13(日) 02:17:41失うものも多いかもしれないけど
0131デフォルトの名無しさん
2008/04/13(日) 02:23:00Rubyはクロージャも継続もスレッドも備えていますから、
Schemeはなんでも自作しないといけなくて大変そうに見えるのですが。
0132デフォルトの名無しさん
2008/04/13(日) 02:45:090133デフォルトの名無しさん
2008/04/13(日) 02:47:05引き留めて欲しい人、という感じだな。気持ち悪い。
0134デフォルトの名無しさん
2008/04/13(日) 02:56:090135デフォルトの名無しさん
2008/04/13(日) 07:35:33````````````y
0136デフォルトの名無しさん
2008/04/13(日) 11:35:59仕様はまだ無いけど。
0137デフォルトの名無しさん
2008/04/13(日) 11:41:45な?
0138デフォルトの名無しさん
2008/04/13(日) 11:55:350139デフォルトの名無しさん
2008/04/13(日) 12:20:12読まなくていいけど、ちょっとつまみ食いしてみようかな
というふいんきがベスト
0140デフォルトの名無しさん
2008/04/13(日) 12:25:27.............................λ <やあ、Yコンビネータさん
0141デフォルトの名無しさん
2008/04/13(日) 13:21:36比べるものが違うと思う。
[ {Simply Scheme or HtDP}読了後 ⇒ SICP ] or [Little Schemer ⇒ Seasoned Schemer]
でも最近は
[Little Schemer ⇒ Seasoned Schemer ⇒ SICP]
という読み方が多いかも。
0142デフォルトの名無しさん
2008/04/13(日) 13:23:290143デフォルトの名無しさん
2008/04/13(日) 13:25:400144デフォルトの名無しさん
2008/04/13(日) 13:27:000145デフォルトの名無しさん
2008/04/13(日) 13:48:060146デフォルトの名無しさん
2008/04/13(日) 15:21:56あるじゃん。Instructors Manualって解説用の本。
0147デフォルトの名無しさん
2008/04/13(日) 15:26:050148デフォルトの名無しさん
2008/04/13(日) 15:34:35yes
0149デフォルトの名無しさん
2008/04/13(日) 15:52:36アメリカの教科書って難しい内容だと生徒がデスマになるからか、HPがあったり副読本がついてたりするな。至れり尽くせり。
Gauche本のDesktop ReferenceとかInstructor's Manualも出て欲しいw
0150デフォルトの名無しさん
2008/04/13(日) 16:12:16SICMっていう古典力学のプログラミング本も出てるラスィ
0151デフォルトの名無しさん
2008/04/13(日) 16:17:25http://www.amazon.co.jp/dp/0262194554/
さらに難しそうなんです><
0152デフォルトの名無しさん
2008/04/13(日) 16:19:58Littleの9章で出てきた"partial function"のpartialって偏微分の偏だよね。
どこかで「引数を全て使わない関数のことだ」と書いてあったけど、
全て使っててもpartialだと言ってるし意味が通じない。
0153デフォルトの名無しさん
2008/04/13(日) 16:35:45ttp://mitpress.mit.edu/catalog/item/default.asp?ttype=2&tid=4048
今売ってるのはコッチ。目に痛い赤の表紙w
0154デフォルトの名無しさん
2008/04/13(日) 16:37:230155デフォルトの名無しさん
2008/04/13(日) 16:40:06完全な関数になっていないという意味でpartial(部分的な)と呼んでいる。
引数を使うかどうかは呼称に重要ではない。関数が計算を終了するかどうかでpartialと区別する。
0156デフォルトの名無しさん
2008/04/13(日) 16:41:41ええ。それはわかりました。
永遠にリスト内を探し続けるが、見つけるべき文字列が見つからないとか、、
そんな例がありましたね。
0157デフォルトの名無しさん
2008/04/13(日) 16:42:57>>151は526ページだけど、>>153は534ページある。中身は少し違う。
0158デフォルトの名無しさん
2008/04/13(日) 16:44:060159デフォルトの名無しさん
2008/04/13(日) 16:44:08解説もあったよ
ttp://en.wikipedia.org/wiki/Partial_function
Little Schemerは謎解き本だと思うので
いま九章読んでる人は読まないほうがいいかも
0160デフォルトの名無しさん
2008/04/13(日) 16:46:43古いと灰色や金色の表紙のものがある。amazon.co.jpは古い表紙のpicを使いまわしてると思われ
0161デフォルトの名無しさん
2008/04/13(日) 16:48:15実際は赤なんだけど灰色の画像使ってるだけかと思ってました。
0162デフォルトの名無しさん
2008/04/13(日) 16:51:26amazon.co.jp見ただけじゃそんなことわからないYO!
0163デフォルトの名無しさん
2008/04/13(日) 16:56:34http://mitpress.mit.edu/SICM/
0164デフォルトの名無しさん
2008/04/13(日) 16:57:04そのページの対応する言語を見ると日本語がないw
0165デフォルトの名無しさん
2008/04/13(日) 17:00:19宝の持ち腐れだ。先に数学、勉強するよ。
0166デフォルトの名無しさん
2008/04/13(日) 17:00:300167デフォルトの名無しさん
2008/04/13(日) 17:07:18これじゃ違うかな。
http://ja.wikipedia.org/wiki/%E5%86%99%E5%83%8F
0168デフォルトの名無しさん
2008/04/13(日) 17:10:16�d。部分写像(partial mapping)がpartial functionに近い。
0169デフォルトの名無しさん
2008/04/13(日) 17:23:200170デフォルトの名無しさん
2008/04/13(日) 17:25:01ttp://www-swiss.ai.mit.edu/~gjs/6946/linux-install.htm
0171デフォルトの名無しさん
2008/04/13(日) 17:26:160172デフォルトの名無しさん
2008/04/13(日) 17:27:32先週から仕事中の現実逃避に>163読み始めたよ
出来れば日本語訳が( ゚Д゚)ホスィ・・・
0173デフォルトの名無しさん
2008/04/13(日) 17:38:300174デフォルトの名無しさん
2008/04/13(日) 17:42:200175デフォルトの名無しさん
2008/04/13(日) 17:44:33まだちょっともやもや残ってるけど、、、、
今9章だお。
0176デフォルトの名無しさん
2008/04/13(日) 17:45:57HtDPより同じ著者のEOPLの方がいい。
Little Schemerシリーズもいいけど、SICPとEOPLは体系的な知識が得られる。
0177デフォルトの名無しさん
2008/04/13(日) 17:46:340178デフォルトの名無しさん
2008/04/13(日) 17:48:010179デフォルトの名無しさん
2008/04/13(日) 17:48:55Simply→SICPという意図で書かれているらしいけど、英語読めるか心配。
>>178
おそらくEssential Of Programing Languageかと。
0180デフォルトの名無しさん
2008/04/13(日) 17:53:22表計算プログラムを作る演習などのfinger practiceが充実してるけど理論的には浅い。
Haskellで言えばCraftみたいな内容。
HtDPも理論的なレベルは同程度。こっちはプログラミング作法にページを費やしている。
0181デフォルトの名無しさん
2008/04/13(日) 17:54:160182デフォルトの名無しさん
2008/04/13(日) 17:57:20ありがとう。
退屈させないように色々やってみて、プログラミングに馴染んで来たら、
さてそこから深くするには何が困難か?と考えさせて
SICPにつなげる感じなんですかね。
0183デフォルトの名無しさん
2008/04/13(日) 18:04:13そんな感じ。Littleの8章で困るのも演習でなれることが出来ないからじゃないかい?
SICPに取り組むには、他の言語経験があればLittleぐらい難しくても短期間に十分なレベルに達するけど、
全くの初心者には大量のfinger practiceで経験を積ませないと理論の良さが実感できないから壁を感じるんだと思う。
0184デフォルトの名無しさん
2008/04/13(日) 18:05:35まさにそんな感じです。Simplyいっといたほうが良かったかな・・・・
プログラミングGaucheで代わりになります?
0185デフォルトの名無しさん
2008/04/13(日) 18:21:41Gauche本もってるかな?リファレンス的でfinger practiceはあまりないよ。
SimplyはSICPの前に必要な知識をうまく選んで入れてると思う。
でも Little Schemer ⇒ Seasoned Schemer と読んで、ネット上の他人のプログラムを読むのも面白い。
楽しんで継続できるのが一番いい方法だと思う。
0186デフォルトの名無しさん
2008/04/13(日) 18:25:27Continuation Fest 2008
http://logic.cs.tsukuba.ac.jp/Continuation/abstract.html
0187デフォルトの名無しさん
2008/04/13(日) 18:29:36持ってないです。ネットの立ち読み版は眺めましたけど。
折角Little読み終わりそうだから続けてSeasoned読んじゃおう。
どうもありがとう。
0188デフォルトの名無しさん
2008/04/13(日) 18:44:45おれも内容知りたいなぁ>>継続フェスタ。
0189デフォルトの名無しさん
2008/04/13(日) 19:02:27Seasonedをしっかり理解するとSICPの山場といえる3・4章が簡単になるからガンガレ。
特に継続(callcc)がSICP3.5ストリームで利用されるのは面白い。
これがわかるとSICMの入門準備も完了。runge-kutta4(つまり微分方程式)とか出来るとシミュレーションの幅がちょっと広がるし。
ストリームで無限リストが作れるのも目からうろこの体験だった。
これ位はできないとHaskellerに馬鹿にされるしw
0190デフォルトの名無しさん
2008/04/13(日) 19:03:300191デフォルトの名無しさん
2008/04/13(日) 19:12:15活動すれば良いんじゃないかと思った。
0192デフォルトの名無しさん
2008/04/13(日) 19:22:24コンパイラといえばyacc
OSといえばブートローダー
SchemeといえばLittle Schemer
0193デフォルトの名無しさん
2008/04/13(日) 19:33:260194デフォルトの名無しさん
2008/04/13(日) 19:37:180195デフォルトの名無しさん
2008/04/13(日) 19:43:040196デフォルトの名無しさん
2008/04/13(日) 19:44:330197デフォルトの名無しさん
2008/04/13(日) 19:50:300198デフォルトの名無しさん
2008/04/13(日) 20:04:50どういうものをイメージしてるのかよく分からないよ……
0199デフォルトの名無しさん
2008/04/13(日) 20:33:16プログラマは皆SICP必須だな。あれを読めば、場当たり的なコーディングから
完全に開放されるよ。
0200デフォルトの名無しさん
2008/04/13(日) 20:34:240201デフォルトの名無しさん
2008/04/13(日) 20:49:26俺は英語版を読んだ。最初翻訳本買おうかと思ってAmazon見たらあのコメントの
群れを見て引いちゃったよw。「超循環評価機」とかのタイトル見ても???だったしね。
英語は教科書だからか、受験英語やってりゃ普通に読める英文だよ。ネイティブ風な
言い回しは一切無い。多少英語が読めるんだったら、タダでネットで見れるんだし、
原語でいいんじゃないか。
ちなみに俺はあまりの感動にハードカバーの洋書を買ってしまった。9000円ぐらい
したかな。ただ、持ち運びにはペーパーバックのほうがいいし、値段も半額以下なので
これについては激しく後悔しているw
0202デフォルトの名無しさん
2008/04/13(日) 21:06:570203デフォルトの名無しさん
2008/04/13(日) 21:10:17超循環評価機をメタサーキュラ〜とかカタカナで書かれたら死ぬ。
0204デフォルトの名無しさん
2008/04/13(日) 21:12:160205デフォルトの名無しさん
2008/04/13(日) 21:21:200206デフォルトの名無しさん
2008/04/13(日) 22:46:13あれは読んでない奴の戯言だ
Amazonのあの手の書き込みは鵜呑みにしない事にしている
0207デフォルトの名無しさん
2008/04/13(日) 23:14:33->計算機(computer)
みたいな感じで元の英単語も書けば良かったんだよな。
0208デフォルトの名無しさん
2008/04/13(日) 23:17:090209デフォルトの名無しさん
2008/04/13(日) 23:28:31英語版はLaTeXだけど、日本語版は組版でやってるからちょっとした修正が出来ない。
もとの単語を書くと文字数が増えるからページ数を抑えるためにポイント数を抑えざるを得ない。
でもそれは技術的に難しい。かといってページ数を増やすと\5,000以上になってしまう。
つまりピアソンがコストダウンできる技術力を持っていないことにもそういう工夫を出来ない原因がある。
かといってムリをすればマグロウヒルみたいに倒産して書物が入手できなくなってしまう。
良い本なら買い支えるというのも消費者の選択なんジャマイカ?
0210デフォルトの名無しさん
2008/04/14(月) 00:28:47total functionは、全ての実引数に対して値が定義されている関数。
partial functoinは、値の定義されてない実引数のある関数。
具体例は、
(define (f x)
(if (= x 1) 1
(f (- x 1))))
定義域を自然数だとするとtotal function。
整数だとするとpartial function。
負の数の時に停らないあるいは値が未定義だから。
(define (f x) (/ 1 x))もxが0だと駄目だからpartial function。
0211デフォルトの名無しさん
2008/04/14(月) 01:22:420212デフォルトの名無しさん
2008/04/14(月) 01:25:17>>155が説明して>>156で納得して終了済。
0213デフォルトの名無しさん
2008/04/14(月) 01:44:48http://foldoc.org/?partial+function
> 関数が計算を終了するかどうかでpartialと区別する。
これは間違い。例えばSMLのような例外のある計算系では、
関数の値が未定義の場合も停止する。Liftされているから。
表示的意味論の本を読めばちゃんと書いてあるよ。
0214デフォルトの名無しさん
2008/04/14(月) 01:56:14∃x (x≠⊥ & D[f(x)] = ⊥) なら、fはpartial functionってことだよな。
0215デフォルトの名無しさん
2008/04/14(月) 02:03:05とりあえず泣いてくる
0216デフォルトの名無しさん
2008/04/14(月) 02:03:58ああ俺もギャル文字を思い出した。一緒に泣こうぜ。
0218デフォルトの名無しさん
2008/04/14(月) 05:09:54大学に対しては良書を教えてくれた事に関しては感謝してる
0219デフォルトの名無しさん
2008/04/14(月) 06:46:38self-containedで読めるようになる本教えてください。
0220デフォルトの名無しさん
2008/04/14(月) 12:54:26適切なbindingがない場合はxml-rpcが一番簡単なのかな?
0221デフォルトの名無しさん
2008/04/14(月) 13:30:460222デフォルトの名無しさん
2008/04/14(月) 17:56:28てのが気になってる。
アマゾンによると翻訳がすこぶる良いという。
0223デフォルトの名無しさん
2008/04/14(月) 19:17:52スレチ。移動ヨロ。
ttp://pc11.2ch.net/test/read.cgi/tech/1202273631/
0224デフォルトの名無しさん
2008/04/14(月) 21:58:52http://science6.2ch.net/test/read.cgi/informatics/1160740645/
0225デフォルトの名無しさん
2008/04/14(月) 22:23:08Chiken Schemeは簡単に実行形式ファイルが作れるんかの?
0226デフォルトの名無しさん
2008/04/14(月) 22:29:51ttp://codepad.org/6uu28twJ
KANREN : a declarative logic programming system
ttp://kanren.sourceforge.net/#mini
0227デフォルトの名無しさん
2008/04/14(月) 22:48:17お前のことなんぞ知らんからお前にとって簡単かどうかはお前が判断しろ。
マニュアル通りやってみてできたならお前にも簡単にできるってことだ。
そうでなければ難しいんだろう。
0228デフォルトの名無しさん
2008/04/14(月) 22:52:39Oleg Kiselyovって日本と研究してるのか?
http://okmij.org/ftp/
0229デフォルトの名無しさん
2008/04/14(月) 23:26:021. Playthings
ttp://codepad.org/buHFpoPQ
0230デフォルトの名無しさん
2008/04/15(火) 01:58:12難しそうだ。
0231デフォルトの名無しさん
2008/04/15(火) 03:03:41ふむ、chicken schemeっての初めて見てみたけど簡単に実行ファイルが作れるんだな。
0232デフォルトの名無しさん
2008/04/15(火) 06:20:53そうそう、和田先生が翻訳メモとして技術用語の翻訳対照表をつけてくれれば、
読みやすかったのに。
0233デフォルトの名無しさん
2008/04/15(火) 11:15:30組み込みやC++クラスのエクスポートが簡単にできる
ポータブルな処理系ってありますか?
0234デフォルトの名無しさん
2008/04/15(火) 12:10:18俺もほとんど知らない。教えてほしい
0235デフォルトの名無しさん
2008/04/15(火) 14:27:24有理数がないのと多倍長数がないのが残念。
biglooもそうだったような気がするけど
Cにコンパイルする処理系はCの整数型、浮動小数型に縛られる物が多い。
Gambit-CはCコンパイルタイプには珍しく
多倍長数、有理数と正確数表現の複素数(これはGaucheにもない!)があるんだけど
SRFI周りが互換性の無い独自の実装なのが残念。
(たとえばSRFI-22の引数にスクリプトファイル名を含めない、文字列ポートを読み込むと空になる等)
>>233
組み込み系UnixライクOSでも動くとなればguileかScheme48でしょう。
Cでプログラムを書くのも容易だし
ソースに手を入れなくてもターゲットで動く。
但し前者は遅い上にR5RS準拠ではない。(R5RS手続きは網羅してるけど)
後者はR5RS準拠で完成度は高いけどやや重くてやや遅い。
処理系ソースに手を入れる事を厭わないのであればGaucheかGambit-C。
前者は軽くてそこそこ速い。後者はそこそこ軽くて(コンパイルすれば)かなり速い。
PLTScheme(MzScheme)がUnix系全般で動くようになれば最強っぽいんだけど
BoehmGCを移植しただけじゃ動かないのが×。
さらにコンパイルしなくても速いのにコンパイルしても(そんなに)速くならないのはご愛嬌。
0236デフォルトの名無しさん
2008/04/15(火) 15:16:12>複素数(これはGaucheにもない!)
あるっしょ
0237デフォルトの名無しさん
2008/04/15(火) 15:18:450238デフォルトの名無しさん
2008/04/15(火) 15:52:35#t
これはいいsqrt
0239デフォルトの名無しさん
2008/04/15(火) 16:03:30sqrtのような潜在的に不正確な演算は、正確引数に適用されたとき、
可能ならばいつでも正確な答えを算出することが望ましい(が要求はされていない)。
なので処理系依存。
0240225
2008/04/15(火) 20:40:37参考になった。ありがとう。
0241デフォルトの名無しさん
2008/04/15(火) 23:24:29Linuxだと簡単にバイナリ作れた。
winだとコンパイルも通らなかった orz
mingwin32嫌いだ!
0242デフォルトの名無しさん
2008/04/15(火) 23:35:56あれ、出来なかったっけ?
ちょっと今MinGW環境壊しちゃったので手元で確認できないけど
0243デフォルトの名無しさん
2008/04/15(火) 23:40:20できたらgccのバージョンとかライブラリのバージョンさらしてください。
しょぼーん。
#共通環境はsbclが一番良いんじゃないかと思うようになっちゃったのでscheme嫌いになりそう
0244デフォルトの名無しさん
2008/04/16(水) 00:14:09Makefile.mingwを使うとchicken-config.hの作成に失敗する。
そこだけ手作業でやったらあとは普通にmakeが走ってる。
今ビルド中。っていうか本家に最新版のWindowsバイナリ置いて無いな。
0245デフォルトの名無しさん
2008/04/16(水) 00:30:12Windowsは偉大だな。
0246デフォルトの名無しさん
2008/04/16(水) 00:43:18ために使いたい、という動機が大きいのでは?
趣味にしても、仕事にしても。
0247デフォルトの名無しさん
2008/04/16(水) 00:53:25ttp://scheme2006.cs.uchicago.edu/12-byrd.pdf
KANRENって「関連」みたいだけど中国語。
Chung-chieh Shan(單中杰)というハーバード出身でラトガース大学のAssistant Prof.の人とやった仕事。
0248244
2008/04/16(水) 00:55:30こっちでやれば一発でいけたのかも。
まぁ、gcc3.4.5で普通にコンパイルはできたよ。
0249242
2008/04/16(水) 02:07:59漏れもgcc4.3.0 & Makefile.mingw-msysでやってみたけど問題なさそう
0250デフォルトの名無しさん
2008/04/16(水) 02:18:42処理系はとりあえずUNIX系の上でつくられて、
そういう尊い方々がWinに移植なさるのですね。
感動しました。
漏れはWinでないと使う気にならないから使ってるだけだが、
いつかそうなりたいね。
0251デフォルトの名無しさん
2008/04/16(水) 02:23:10WindowsのAPIってなんか例外事項が多くてごちゃごちゃしてる感じ。
0253デフォルトの名無しさん
2008/04/16(水) 12:42:00という観点では
エンドユーザが自分でMinGWを入れるという前提はおかしい
普通の人はVisual C++とMzSchemeを使えばいい
0254デフォルトの名無しさん
2008/04/16(水) 13:28:11「エンドユーザ」はMinGWを入れる必要は無いだろ
0255デフォルトの名無しさん
2008/04/16(水) 13:47:150256デフォルトの名無しさん
2008/04/16(水) 13:54:120257デフォルトの名無しさん
2008/04/16(水) 15:26:31・ソースファイルと同じ名前のモジュールで包む
たとえば hello.scm なら
(module hello mzscheme
(display "Hello, world!")
(newline))
・--exeオプション
たとえば mzc --exe hello hello.scm
・bccに対応していると書いてあるが無償版のbccでは失敗するみたい
0258デフォルトの名無しさん
2008/04/16(水) 19:15:29とりあえず、いろいろ試してみました。
guile)
・GPLライセンス
・試してないがVCでコンパイルできなさそう
Scheme48)
・VCでもコンパイル可能
・ただ、実行の際に〜.imageファイルが必要なのと、
その作成にScheme48インストールディレクトリのフルパスが必要・・・
・(美学の問題だが)関数名がおかしいのと、コンパイル時に
「○○関数は未定義です」「○○は初期化されていません」みたいな警告が普通に出てくる。
chiken)
・VCでもコンパイル可能のはず。自分には無理だった。
・(pcreを使っているので多分)正規表現がマルチバイトをサポートしていない。
Gauche)
・コアはVCでコンパイル可能だが、拡張ライブラリが全滅
・クラス登録機構がGNUのリンカの実装に依存している。VCだと拡張ライブラリを作ること自体が難しそう。
・基本的にposixべったり
・デフォルトで日本語が使える。ドキュメントも日本語
0259デフォルトの名無しさん
2008/04/16(水) 19:16:14・VCでコンパイル可能
・自動生成されたソースが長すぎるため、IntelliSenseの更新に長大な時間がかかる。たまに開発環境自体が落ちる
・(サイズが)すごく大きいです・・・
総括)
こうやって並べてみると、日本語が使えるGaucheか、Gambit-Cが問題が少なさそうですね。
自分は多分、gaucheをstatic libraryで使うことにすると思います。
個人的にはluaのようにもっと手軽に組み込める処理系があると嬉しいのですが、文句ばっかり言ってもしょうがないですよね。
>>235さん、ライブラリの紹介どうもありがとうございました。
0260デフォルトの名無しさん
2008/04/16(水) 21:36:34MinGWじゃ駄目なのかい。
0261デフォルトの名無しさん
2008/04/16(水) 21:42:41頭のとんがった上司がいるのか
その両方か
0262デフォルトの名無しさん
2008/04/16(水) 22:09:15Gauche-win32-0.8.13.exeじゃだめなの?
0263デフォルトの名無しさん
2008/04/16(水) 22:16:20Windowsしか知らなかったころはexeをつくれて一人前の開発環境というイメージだった。
0264デフォルトの名無しさん
2008/04/16(水) 22:21:32自分で使うコードなら別にexeにする必要ないんだけど、ちょいと配布したりするのに実行環境必要とか言うと困るからじゃないの?
どんなプログラムだかしらないけど。
0265233
2008/04/16(水) 22:28:13理由1、VCの便利な機能が使いたい
理由2、schemeという小さな言語がVCでコンパイルできない理由がわからない
仕様も小さいんだしVCでもコンパイルさせてくれよ・・・
というのが本音です。
>>261
> IntelliSenseが使いたいのか
どちらかというとこっちです。
でも後者の方が面白いので、できればこっちを強弁したいですねw
>>262
すみません、書いてませんでしたが自分は>>233です。
C++に組み込むので、別途インストールというのはちょっと考えられないのです。
0266デフォルトの名無しさん
2008/04/16(水) 22:33:41MinGWはMSYSが要るのか要らないのかはっきりしてほしいw
0267デフォルトの名無しさん
2008/04/16(水) 22:39:02確かに逆から見たらそう感じても不思議じゃないね
0268デフォルトの名無しさん
2008/04/16(水) 22:47:21実行だけなら要らない。ランタイムのDLLさえも要らない場合が多い。
最近のVCはRuntime(もちろん自由に再配布できるが)を入れないといけないことが多い。
VCじゃなきゃ嫌んの人はMinGWをよく知らないだけではないかと思う。
0269デフォルトの名無しさん
2008/04/16(水) 22:51:25ファーストクラスの継続があるため
関数からreturnする時に
単純にスタックフレームを開放できない。
また、末尾呼び出しの最適化は
C及びC++では行えない。
(だからSchemeの場合はバイトコードインタプリタの方が
効率が良かったりする。)
これらの理由により、ネイティヴコードをポータブルに吐く方法がない為
GCC用のソースは手を入れない限り他の処理系でコンパイルできない場合が多い。
0270デフォルトの名無しさん
2008/04/16(水) 22:58:01> 理由2、schemeという小さな言語がVCでコンパイルできない理由がわからない
> 仕様も小さいんだしVCでもコンパイルさせてくれよ・・・
君がScheme処理系を書けば良いのでは?
0271デフォルトの名無しさん
2008/04/16(水) 23:43:31実行環境はさほど小さくない。処理系もけっこう大きい。
0272デフォルトの名無しさん
2008/04/17(木) 00:18:530273233
2008/04/17(木) 00:22:42自分のプログラムでは外部ランタイムは無用です。
あと全く別の問題として、schemeのために開発環境を変えるということ自体がちょっと嫌なんです。
>>269
・ネイティブスタックを使わず、自前のスタックかメモリを確保すれば
継続でもコルーチンでもポータブルに作れます(作れるはずです)
・バイトコードを採用すれば、処理系のコードは自然とポータブルになります
・ネイティブコードをポータブルに吐く方法なんて自分は一つも知りません
って、あまり面白くないツッコミですみません。
あと、schemeがポータブルに実装できないわけではですよ。
実際、明らかにwindowsのようなマイナーな環境(?)を無視した作りのgaucheでも、
コア部分はコンパイルできるわけですし。
>>270
今までは、あまり実用にならなそうなマイ言語を作っている人を、
内心バカにしたりもしていたのですが(すみません)
schemeでも他の言語でも、自作の処理系が一つあると意外なところで使えたりするのかもしれませんね。
scheme作るのも面白そうなので、時間があれば是非やってみたいです。
0274デフォルトの名無しさん
2008/04/17(木) 00:27:050275デフォルトの名無しさん
2008/04/17(木) 00:44:29Win32でもランタイムを必要とするVBを見下し、CをつかってもMSVCRTの依存すら排除しようとしていた経験のある俺には233の気持がわかる気がする。
0276デフォルトの名無しさん
2008/04/17(木) 01:44:38そんなMSXが許されるのは小学生までだよねー
0277デフォルトの名無しさん
2008/04/17(木) 01:49:42GaucheはWindowsを無視はしてないよ。
多少なりともVC++を意識した変更が入っていたはず。
ttp://practical-scheme.net/wiliki/wiliki.cgi?Gauche%3aWindows%2fVC%2b%2b
を参照するといいと思う。マンパワーが足りないから進捗が遅いだけで。
成果をフィードバックしてくれるなら、向こうにとっても渡りに船だろうし、
本気でやる気があるなら、WiLiKiに書き込んでみればいいんじゃない?
上手く協力できれば、双方にとって良い結果になると思うけど。
0278デフォルトの名無しさん
2008/04/17(木) 02:12:31今、手元にThe Little Schemerがあるんだけど
この本に書いてある例題は全部
Dr.schemeで実行できるの?
0279デフォルトの名無しさん
2008/04/17(木) 03:33:26まずcdrする
次にcarする、
最後にcdrする、
と3段階に分けて処理をしたいんだけど、
どうすればいいの?
BASICみたいに
a=(a,b,c)
みたいにリストを変数に代入して、
ってできるの?
0280デフォルトの名無しさん
2008/04/17(木) 04:21:40(a (cdr a))
(a (car a))
(a (cdr a)))
a)
0281デフォルトの名無しさん
2008/04/17(木) 04:27:41(setq a '(a b c))
(setq a (cdr a))
(setq a (car a))
(setq a (cdr a))
)
Lispならこんなのでいいんでないの
0282デフォルトの名無しさん
2008/04/17(木) 06:53:060283デフォルトの名無しさん
2008/04/17(木) 07:11:22Lisp脳が育つと括弧を空気のように感じるようになる。
0284デフォルトの名無しさん
2008/04/17(木) 07:41:530285デフォルトの名無しさん
2008/04/17(木) 07:43:500286デフォルトの名無しさん
2008/04/17(木) 08:00:11> あと全く別の問題として、schemeのために開発環境を変えるということ自体がちょっと嫌なんです。
いずれEmacs+Schemeに慣れればVisual Studioには戻りたくなくなる。
そうでなければそもそもSchemeには縁がない。
0287デフォルトの名無しさん
2008/04/17(木) 08:21:30SICPやSchemerシリーズやっている人は、
schemeが手続き型っぽく書けないと思い込んでいる人が多い。
ただそれらのテキストが関数型っぽく書いているというだけなのに。
Common Lispとさほど変わらない。
0288デフォルトの名無しさん
2008/04/17(木) 08:57:25本当?かなり違うと思ってた。
例外とかgotoとかを手続型と
さほどかわらないように書くにはどうするの?
0289デフォルトの名無しさん
2008/04/17(木) 09:32:520290デフォルトの名無しさん
2008/04/17(木) 09:34:130291デフォルトの名無しさん
2008/04/17(木) 09:43:410292デフォルトの名無しさん
2008/04/17(木) 10:06:59(apply (fcompose f g x) x)
みたいなものができる筈なんで>>279の処理も
(fcompose-and-apply cdr car cdr a)
みたいにできるfcompose-and-apply(仮)が書ける気がせんでもない
0293デフォルトの名無しさん
2008/04/17(木) 10:08:350294デフォルトの名無しさん
2008/04/17(木) 10:13:13unwind-protect(finally)とかあるから殆んど手続き型と同じように書けるよ
R6RSにも似たようなものがあるはず
0295デフォルトの名無しさん
2008/04/17(木) 11:43:51例外はr6rsに入ってただろ。手軽にやりたいなら継続呼べばいいし。
goto相当のジャンプも継続が使えるけど、
継続はラベルじゃなくてオブジェクトなので使い勝手をgotoみたいにしたいなら
自前でラップしなきゃ駄目かもな。
0296デフォルトの名無しさん
2008/04/17(木) 13:01:500297デフォルトの名無しさん
2008/04/17(木) 14:51:410298デフォルトの名無しさん
2008/04/17(木) 17:02:27使えよ
0299デフォルトの名無しさん
2008/04/17(木) 17:08:010300デフォルトの名無しさん
2008/04/17(木) 17:32:41(values nil
"ttp://www.cliki.net/web%20API"
"Clikiにはズバリはないみたいだけど、
cl-ajaxとかでできるのかな。"
"よくわからない。")
0301デフォルトの名無しさん
2008/04/17(木) 21:12:46�d。miniKANRENは徐々に進化しているようでした。
leanTAP⇒KANREN⇒miniKANREN⇒alphaKANREN
ttp://www.cs.indiana.edu/~webyrd/alphamk/alphamk.pdf
ttp://kanren.sourceforge.net/
ParentheCというパーサー(c⇒scheme)を見つけました。
パターンマッチはolegのものを流用してます。
ttp://www.cs.indiana.edu/classes/b521/newpc/ParentheC.pdf
ttp://www.cs.indiana.edu/classes/b521/notes.html
Prologもどきと軽く思ってたけどReasoned Schemerって意外に深いのかな。
型推論のHindley-Milner type inferenceとかOCAMLみたいw
0302デフォルトの名無しさん
2008/04/17(木) 21:27:16ttp://www.cs.indiana.edu/l/www/classes/b521/pmatch.pdf
0303277
2008/04/17(木) 23:07:24Windows向けインストーラの話とか、
色々更新されたから行っといでー。
釣りじゃないなら、話し合う絶好の機会だよー。
0304デフォルトの名無しさん
2008/04/17(木) 23:33:37schemeの処理系を書く環境と
schemeを書く環境はちょっと違うと思うぞ。
0305デフォルトの名無しさん
2008/04/17(木) 23:35:06SchemeでSchemeを書けばいいジャマイカ
0306デフォルトの名無しさん
2008/04/17(木) 23:42:20と思ってるに違いない
空気読めない奴の発言は反吐が出る
0307デフォルトの名無しさん
2008/04/17(木) 23:49:17何でそんな事でいきなりヒートアップするんだよ。
まあ、元の話題はC++にSchemeを組み込みたい、って話だったから、
>>286のレスが明後日の方向を向いてるとは、俺も思うけどさ。
0308デフォルトの名無しさん
2008/04/18(金) 00:21:32きっと胃が悪いんだよ<反吐が出る
0309デフォルトの名無しさん
2008/04/18(金) 00:53:51Cで書かれたTinySchemeをマージするほうが簡単かもしれないがw
0310デフォルトの名無しさん
2008/04/18(金) 00:59:13ttp://pagesperso-systeme.lip6.fr/Christian.Queinnec/WWW/LiSP.html
0311デフォルトの名無しさん
2008/04/18(金) 01:12:59本当に自分の方がレベルが高いなら、
別に同じレベルと思われても構わないという態度で
淡々としてれば良いのさ。
あるいはそんなものスルーして自分の興味のある別の、
レベルの高い話を振ればいいよ。
0312デフォルトの名無しさん
2008/04/18(金) 01:15:140313デフォルトの名無しさん
2008/04/18(金) 01:16:33本の中に動かない例があるけどw
それ以外は全部動くよ。当然だけど。
DrSchemeのライブラリって面白いのが結構あるなぁ
ttp://planet.plt-scheme.org/
HtDPやEOPLだけじゃなくSICPやSimplyのためのpltがちゃんとある。
でもLittle用はない。なくても動くから。
0314sage
2008/04/18(金) 11:25:530315デフォルトの名無しさん
2008/04/18(金) 12:00:390316デフォルトの名無しさん
2008/04/18(金) 17:50:13同じ内容のpythonのプログラムは動くこと確認したんだけど
0317デフォルトの名無しさん
2008/04/18(金) 18:04:180318デフォルトの名無しさん
2008/04/18(金) 18:36:08pythonでやれば?
0319デフォルトの名無しさん
2008/04/19(土) 01:40:56ここのpmatchを、define-macroで書き直すとどうなるでしょうか。
syntax-rules内の'...'の展開のされ方がよく判らんのです。
1つのパターン内に'...'が複数使われているのがあって、
これは残りの同一のパターンにマッチするという事なんでしょうか。
例えばこの部分とか
((_ (rator rand ...) cs ...)
(let ((v (rator rand ...)))
(pmatch v cs ...)))
0320デフォルトの名無しさん
2008/04/19(土) 01:53:38これだから衛生的なマクロは嫌いなのだ。
0321デフォルトの名無しさん
2008/04/19(土) 01:54:12csの後の ... の中身は違っててもいいのかどうか?
ってことです。
'...'はその文脈の残り((car . cdr)のcdr)という意味しかない
と考えてよいのでしょうか?
0322デフォルトの名無しさん
2008/04/19(土) 01:54:44やはりそうですか。
だとするとまぎらわしいですね。
0323デフォルトの名無しさん
2008/04/19(土) 02:00:14((_ (rator rand . rest1) cs . rest2)
(let ((v (rator rand . rest1)))
(pmatch v cs . rest2)))
こういう風に書き直す事は可能でしょうか?
リストじゃないからできないとか昔どこかで見たような気がするのですが。
0324デフォルトの名無しさん
2008/04/19(土) 02:21:56rand . rest1 と書くと1個以上になるから意味が変わってしまう
0325デフォルトの名無しさん
2008/04/19(土) 02:30:39キモイなそれ
0326デフォルトの名無しさん
2008/04/19(土) 02:53:15つまり書き直すなら
((_ (rator . rand) . cs)
(let ((v (rator . rand)))
(pmatch v . cs)))
という事でしょうか?
0327デフォルトの名無しさん
2008/04/19(土) 03:00:02(define-syntax hoge
(syntax-rules ()
((_ x ...) (list x ... x ...))))
デフォルトで ,@ がついてるようなイメージ
(defmacro hoge (&rest x)
`(list ,@x ,@x))
0328デフォルトの名無しさん
2008/04/19(土) 03:15:54((lambda (symbol ...) . body) (+ value 1) ...))
とか、すごい展開をするんだよね、 ... って。
0329デフォルトの名無しさん
2008/04/19(土) 11:00:44どうしてます?defmacroに変換するようなのないかな。
0330デフォルトの名無しさん
2008/04/19(土) 13:00:59Scheme Macros for Common Lisp
http://www.ccs.neu.edu/home/dorai/mbe/mbe-lsp.html
0331デフォルトの名無しさん
2008/04/19(土) 22:50:21ttp://tinyscheme.sourceforge.net/
TinyScheme Extensions
ttp://heras-gilsanz.com/manuel/tsx.html
OOPS Tiny Scheme Extension
ttp://aladdin.sourceforge.net/oops.php
TinyScheme for Zaurus
ttp://www.alphageeksinc.com/tinyscheme/
0332デフォルトの名無しさん
2008/04/19(土) 22:53:44ParentheCってlambdaすら処理できないみたいだよ。
これでCにポートしろなんて詐欺もいいとこ。
0333デフォルトの名無しさん
2008/04/19(土) 23:29:280334デフォルトの名無しさん
2008/04/19(土) 23:56:390335デフォルトの名無しさん
2008/04/20(日) 00:29:25ライブラリも (C/C++なら) たくさんある
後はそれを組み合わせることを考えよう
0336デフォルトの名無しさん
2008/04/20(日) 00:34:220337デフォルトの名無しさん
2008/04/20(日) 00:36:490338デフォルトの名無しさん
2008/04/20(日) 01:09:370339デフォルトの名無しさん
2008/04/20(日) 01:32:460340デフォルトの名無しさん
2008/04/20(日) 03:36:46あれって使い方でどうにかなるもんなの?
0341デフォルトの名無しさん
2008/04/20(日) 09:17:160342デフォルトの名無しさん
2008/04/20(日) 12:11:37SBCL 1.0.16
DRAKMA 0.11.5
ubuntu 7.10
で今試したけど大丈夫だった。
0343デフォルトの名無しさん
2008/04/20(日) 18:55:28と思ってたら一発で使えるように同梱されたビルドがあった。
http://saito.s4.xrea.com/wiliki.scm?Gauche
psyntax.exeってのがそうみたい。
exeにするのってどうやったんだろ?
0344デフォルトの名無しさん
2008/04/20(日) 20:35:000345デフォルトの名無しさん
2008/04/20(日) 20:42:290346デフォルトの名無しさん
2008/04/20(日) 21:38:38newlispなんかだと簡単だよ
SBClやCormanLispなんてのもあるけど
0347デフォルトの名無しさん
2008/04/20(日) 22:05:06処理系のソースがあるんならschemeのソースを埋め込んで
スタートアップで呼び出すようにすれば完成でしょ。
VMで動くようなのはコンパイル後のやつ入れとく。
これだからオプソって意味ないんだよな。
0348デフォルトの名無しさん
2008/04/20(日) 22:10:07Gaucheのtarball落としたら中にgencompってのがある。
それでVM用コードにして適当なmainだけ書いてgccでコンパイル。
0349デフォルトの名無しさん
2008/04/20(日) 22:24:02(define 'a #f)
(set! a 1)
(display a)
これは
gosh> quote
gosh> 1
gosh> 1#<undef>
となって動くんですが
(define 'line #f)
(set! line "foo\n")
(display line)
と変えるとエラーになります。
gosh> quote
gosh> *** ERROR: symbol not defined: #<id 0x80eb100 user::line>
Stack Trace:
_______________________________________
gosh> *** ERROR: unbound variable: line
Stack Trace:
_______________________________________
どこが間違ってるんでしょうか?
0350デフォルトの名無しさん
2008/04/20(日) 22:32:39(define 'a
(define 'line
ここが間違ってる。それぞれ
(define a
(define line
が意図するものだと思う。
(define 'a
は
(define quote (lambda(a)〜
と解釈される。
0351デフォルトの名無しさん
2008/04/20(日) 22:38:57多分 *scheme* バッファの中で一度 (define a なんとか) を
実行してたから、a が定義されていたんですね。
*scheme* バッファを再起動してたら両方とも動かなくなって
気付いたと思うのですが。
ありがとうございました。
0352デフォルトの名無しさん
2008/04/20(日) 22:46:14quoteを再定義したいなんて思わんし、エラーにすべきか。
0353デフォルトの名無しさん
2008/04/20(日) 23:51:39という環境で、
#!/usr/bin/gosh
(define (main args)
(while (not (eof-object? (set! line (read-line))))
(print line))
0)
というスクリプトを書いて euc-jp なテキストファイルを読み込ませたら
~$ gosh test.scm <text.txt
*** READ-ERROR: Read error at "(stdin)":line 2: read-line: encountered illegal byte sequence: #*"\xc1\xcf\xc0\xa4\xb5\xad\t1\t1\t"
Stack Trace:
_______________________________________
0 (read-line)
At line 3 of "./test.scm"
1 (letrec ((do (lambda () (if (not (not (eof-object? (set! line (rea ...
[unknown location]
というエラーになりました。
euc-jpなままで読んでeuc-jpのまま書き出すにはどうすればいいのでしょうか?
0354デフォルトの名無しさん
2008/04/21(月) 00:20:030355デフォルトの名無しさん
2008/04/21(月) 00:46:50*** ERROR: unbound variable: with-ports
となりました。何故?
#!/usr/bin/gosh
(use gauche.charconv)
(define raw-in (current-input-port))
(define raw-out (current-output-port))
(define in (wrap-with-input-conversion raw-in "eucjp"))
(define out (wrap-with-output-conversion raw-out "eucjp"))
(define line #f)
(define (main args)
(while (not (eof-object? (set! line (read-line in))))
(display (string-append line "\n") out))
0)
0356デフォルトの名無しさん
2008/04/21(月) 03:59:580357デフォルトの名無しさん
2008/04/21(月) 05:06:07どうすればもどるの?
他に開いてるlispのバッファーを全部kill bufferすれば直るけど
buff殺さないで直したい
0358デフォルトの名無しさん
2008/04/21(月) 05:38:24どういう環境だとそうなるの?
漏れはそんな現象に遭遇したことない。
show-paren-modeがなんらかのタイミングでoffになったとか?
0359デフォルトの名無しさん
2008/04/21(月) 06:30:08を何度もしてるといつのまにかなる
0360デフォルトの名無しさん
2008/04/21(月) 08:21:48/usr/share/gauche/0.8.3/lib$ find . -type f | xargs grep with-ports
/usr/share/gauche/0.8.3/lib$
なにもみつからなかった。
0361デフォルトの名無しさん
2008/04/21(月) 13:05:060362デフォルトの名無しさん
2008/04/21(月) 14:45:070363デフォルトの名無しさん
2008/04/21(月) 16:52:39package毎に分割しない?
0364デフォルトの名無しさん
2008/04/21(月) 19:36:23sbclなのですがどの日本語コードを使うのがお勧めなのでしょうか?
0365デフォルトの名無しさん
2008/04/21(月) 20:48:560366デフォルトの名無しさん
2008/04/21(月) 21:02:05BOS (Bryan's Object System)
MEROON ・・・Christian Queinnecによる。情報があまり無いけど有限要素法とかつかえるらしい。runge-kutta-4にあきたらやってみる。
SCOOPS (Scheme Object Oriented Programming System)
Tiny CLOS ・・・なんとたったの850行!"The Art of the Metaobject Protocol"に出てくるsimple CLOSよりコンパクトな学習用。
YASOS (Yet Another Scheme Object System)
0367デフォルトの名無しさん
2008/04/21(月) 21:16:55UTF-8で普通に使える処理系が多い(または増える)と思う
0368デフォルトの名無しさん
2008/04/21(月) 21:26:01BOMあり?8Nでおk?
0369デフォルトの名無しさん
2008/04/21(月) 21:29:060370デフォルトの名無しさん
2008/04/21(月) 21:49:45with-portsは組み込み手続きだから見つからないって変だな。
プラットフォームは何? インストールはどうやった?
0371デフォルトの名無しさん
2008/04/21(月) 22:38:450372355
2008/04/21(月) 22:53:03Debian sarge(3.1)で、aptitudeからインストールしました。
Gaucheのバージョン(0.8.3)が古過ぎるんでしょうか。
~$ aptitude show gauche
パッケージ: gauche
ステータス: インストール済み
自動的にインストールされる: no
バージョン: 0.8.3-3
優先度: 任意
分類: interpreters
保守担当者: Hatta Shuzo <[email protected]>
展開サイズ: 4096k
依存: libc6 (>= 2.3.2.ds1-4)
提案: slib
推奨: r5rs-doc, gauche-doc
詳細: A Scheme implementation designed for script writing
Gauche is a Scheme implementation developed to be a handy script interpreter, which
allows programmers and system administrators to write small to large scripts for their
daily chores. Quick startup, built-in system interface, native multilingual support are
some of the author's goals.
~$ gosh -V
Gauche scheme interpreter, version 0.8.3 [utf-8,pthreads]
~$ gosh -i
gosh> with-input-from-port
#<subr with-input-from-port>
gosh> with-ports
*** ERROR: unbound variable: with-ports
Stack Trace:
_______________________________________
0373デフォルトの名無しさん
2008/04/22(火) 00:09:500374デフォルトの名無しさん
2008/04/22(火) 00:28:56>>373 ごもっとも。WiLiKiの初心者の質問箱とかの方がふさわしい。
0375デフォルトの名無しさん
2008/04/22(火) 01:22:530376デフォルトの名無しさん
2008/04/22(火) 01:25:54下に書いたコードのbreakがうまく動かないのですがどう書いたら正しいのでしょうか?
大元はRnRSに載っているrunge-kutta-4の計算で、元々は無限ループです。
(letrec (
(n 100)
(ls '())
(loop (lambda (s)
(if (not (= n 0))
((set! n (- n 1))
(newline)
(write (head s))
(loop (tail s))))
(break the-states))))
(loop the-states))
0377デフォルトの名無しさん
2008/04/22(火) 01:45:25こんな使い方はない
(break
breakはどこにも定義されてない
0378デフォルトの名無しさん
2008/04/22(火) 03:11:420379364
2008/04/22(火) 10:06:06( scan [ホゲ(プログラム中に直接書いた日本語)]+ , ホゲ(ファイルから読み込んだ日本語) )
同じ ホゲ という単語が入ってるのに認識しなかった
0380364
2008/04/22(火) 10:10:58をslimeでC-C C-P すると動くが C-C C-Cすると動かない(sbcl)
sbcl --load nihongo.lisp
でも動かない
0381デフォルトの名無しさん
2008/04/22(火) 10:28:40sbclはエンコーディング設定が良くわからないけど、
CLispではCL-PPCREで日本語が問題なく使えた。
0382デフォルトの名無しさん
2008/04/22(火) 14:23:17こんなん有り難がって読むくらいだったら, ファイン万物理学読めよorz
0383デフォルトの名無しさん
2008/04/22(火) 14:36:120384デフォルトの名無しさん
2008/04/22(火) 14:42:040385デフォルトの名無しさん
2008/04/22(火) 14:44:21ファイルのエンコーディングもsbclの設定もどうなっているか分からないけど、
漏れの手元のutf-8に対応している処理系なら軒並みできている。
設定は各処理系のマニュアルを参照するのが一番確実。
0386デフォルトの名無しさん
2008/04/22(火) 16:13:01ってどういうエラー?
0387デフォルトの名無しさん
2008/04/22(火) 16:14:33エラー原因書いてあるじゃん。
0388デフォルトの名無しさん
2008/04/22(火) 16:17:25どっかのサイトからコピペしたらこういうエラーが
0389デフォルトの名無しさん
2008/04/22(火) 16:19:560390デフォルトの名無しさん
2008/04/22(火) 16:24:40(define my-abs
(lambda (x)
(cond ((< x 0) (-x))
((= x 0) 0)
(else x))))
一番前の(にマーカがついててエラーメッセージがでます
どのプログラムはってもこういうメッセージがでるんですけど
0391デフォルトの名無しさん
2008/04/22(火) 18:00:25君の場合は、もう少し他人とのコミュニケーションの取り方から
勉強した方が良いよ。
0392デフォルトの名無しさん
2008/04/22(火) 18:00:35人の善意を当てにしてるんじゃない?
なんかそういう質問の仕方増えてきたよね。
ここ親切だからなー。
0393デフォルトの名無しさん
2008/04/22(火) 18:06:07それただの英語だと思って読んでみな。
0394デフォルトの名無しさん
2008/04/22(火) 18:32:46Schemeでbreakを使ってる例:
ttp://www.geocities.co.jp/SiliconValley-PaloAlto/7043/
ttp://www.cs.grinnell.edu/~stone/events/scheme-workshop/quicksort.html
ttp://merd.sourceforge.net/pixel/language-study/various/callcc/scheme.html
(letrec (
(n 100)
(loop (lambda (s)
(if (not (= n 0))
(begin (set! n (- n 1))
(newline)
(write (head s))
(loop (tail s)))))))
(loop the-states))
これで動くでしょう。breakいらないよ。
0395デフォルトの名無しさん
2008/04/22(火) 18:43:09ttp://practical-scheme.net/gauche/man/gauche-refj_102.html
SRFI−1にもbreakは入っている。
0396デフォルトの名無しさん
2008/04/22(火) 18:44:590397デフォルトの名無しさん
2008/04/22(火) 18:45:020398デフォルトの名無しさん
2008/04/22(火) 20:28:16ttp://codepad.org/gSEoxetW
0399デフォルトの名無しさん
2008/04/22(火) 22:10:25Feynman Lectures on Computationも読んだけどけど何か?
SICPにはrunge-kuttaが載ってるけどFeynmanには載ってない。
Feynman厨ウザ
0400デフォルトの名無しさん
2008/04/22(火) 22:45:12ほかの系統にはどんなのがあるのでしょうか?GNU系とかかな?w
0401デフォルトの名無しさん
2008/04/22(火) 22:51:50GNUとか出てくるよりずっと前の話だよ
0402デフォルトの名無しさん
2008/04/22(火) 22:56:39文化じゃなくて処理系のダイアグラムならあるよ
http://www.softwarepreservation.org/projects/LISP/
http://www.dreamsongs.com/NewFiles/Hopl2Slides.pdf
文化って意味だと PARC が別系統の最有力なのかな?
良く知らんけど。
0403デフォルトの名無しさん
2008/04/22(火) 23:27:15ttp://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf
0404デフォルトの名無しさん
2008/04/23(水) 02:43:060405デフォルトの名無しさん
2008/04/23(水) 02:46:520406デフォルトの名無しさん
2008/04/23(水) 03:22:160407デフォルトの名無しさん
2008/04/23(水) 03:24:130408デフォルトの名無しさん
2008/04/23(水) 03:45:33最近知ったやつだけだろ
0409デフォルトの名無しさん
2008/04/23(水) 04:06:160410デフォルトの名無しさん
2008/04/23(水) 04:14:24「GNUを叩いてる俺って、なんてわかってる奴なんだろう♪」
ってなもんだわな。
0411デフォルトの名無しさん
2008/04/23(水) 05:21:09都合の良い解釈もなにも、GNUのポリシーは単純だし、
嫌ならGNUのソフトは使うべきじゃないってくらい単純な話だと思うんだよね。
スレ違だから、他んとこ行って欲しいんだけどw
0412デフォルトの名無しさん
2008/04/23(水) 05:25:58実装してしまうスレ立てないか?
0413デフォルトの名無しさん
2008/04/23(水) 06:30:06lisp発祥でない機能で、面白いのってどういう機能があるんだろうね。
昔にlispでやってたら駄目なわけだよね?
0414デフォルトの名無しさん
2008/04/23(水) 07:27:59多分スレの目的は既成の言語を馬鹿にして諭す事だから
lisp視点で面白いのかは判らないけど
0415デフォルトの名無しさん
2008/04/23(水) 08:00:15こういうのか?
(define alias define)
0416デフォルトの名無しさん
2008/04/23(水) 08:03:33なんで、って言われても、そうなの? >413
まあ、なんらかの確信があるんだろうなwww
0417デフォルトの名無しさん
2008/04/23(水) 08:10:200418デフォルトの名無しさん
2008/04/23(水) 08:37:36でいいよ。
0419デフォルトの名無しさん
2008/04/23(水) 09:18:520420デフォルトの名無しさん
2008/04/23(水) 09:20:040421デフォルトの名無しさん
2008/04/23(水) 09:25:07他言語の構文をread macroでやらかすスレとかならおもしろいかもね
0422デフォルトの名無しさん
2008/04/23(水) 09:38:51コンプレックスがひどいと、そう見えるらしいよ。
0423デフォルトの名無しさん
2008/04/23(水) 09:41:28元々、プロプラの物をオプンで代替する活動だからね
新規性が売りじゃないから GPL のラベルを付ければ何でもオケ
0424デフォルトの名無しさん
2008/04/23(水) 09:45:56そいういうんだったら逆になんでもS式に変換してみてほしい。
S式Rubyなunacceptable acceptable lispとか見てみたい。
0425デフォルトの名無しさん
2008/04/23(水) 11:08:09たしかRuby1.8では、ソースから変換した構文木を直接evalしてたはずだから
それを括弧で囲めばS式になるんじゃないか?
0426デフォルトの名無しさん
2008/04/23(水) 13:16:500427デフォルトの名無しさん
2008/04/23(水) 14:29:050428デフォルトの名無しさん
2008/04/23(水) 15:46:410429デフォルトの名無しさん
2008/04/23(水) 18:13:540430グラハム
2008/04/23(水) 19:14:420431デフォルトの名無しさん
2008/04/23(水) 19:26:13ポールグレアムなら知ってるが、あんた誰?w
つhttp://pc11.2ch.net/test/read.cgi/tech/1202098949/
0432デフォルトの名無しさん
2008/04/23(水) 19:32:06チャップマンかカーかどっちかじゃね?
0433デフォルトの名無しさん
2008/04/23(水) 19:40:11むしろGaucheがArcのいいとこ取りすれば解決しそうだ。
0434グラハム
2008/04/23(水) 19:58:230435デフォルトの名無しさん
2008/04/23(水) 20:04:330436デフォルトの名無しさん
2008/04/23(水) 20:05:270437デフォルトの名無しさん
2008/04/23(水) 20:07:010438デフォルトの名無しさん
2008/04/23(水) 20:11:020439デフォルトの名無しさん
2008/04/23(水) 20:12:050440デフォルトの名無しさん
2008/04/23(水) 20:16:10Ruby厨の人も大変だな
0441デフォルトの名無しさん
2008/04/23(水) 20:18:030442デフォルトの名無しさん
2008/04/23(水) 20:20:280443デフォルトの名無しさん
2008/04/23(水) 20:24:550444デフォルトの名無しさん
2008/04/23(水) 21:04:35Programmation fonctionnelle en scheme
by Jean-Michel Hufflen, Masson, Paris, 1996
EUR 26.13
日本語版があればDybvigのを読みたかった。
読み終わったらStruktur und Interpretation von Computerprogrammenを読む予定。
でもLittleが流行ってるから先に読みたいな。でも英語がちょっと orz
0445デフォルトの名無しさん
2008/04/23(水) 21:11:000446デフォルトの名無しさん
2008/04/23(水) 21:34:28英語は勉強が必要。でも勉強するならProgrammationの方が楽しい。
0447デフォルトの名無しさん
2008/04/23(水) 21:38:340448デフォルトの名無しさん
2008/04/23(水) 21:42:12厨が集まる言語の条件:
・誰でも演習レベルまでは直ぐいける。
・ハイレベルに移行するには何らかのセンスor適切なガイドが必要
・エキスパートによって成果が出ている。
0449デフォルトの名無しさん
2008/04/23(水) 21:42:51⇒4286.421640799999
ぐは、結構高い!
0450デフォルトの名無しさん
2008/04/23(水) 22:41:47Lispには大きく分けて東のMACLISP系と西のInterlisp系の二つの主流が存在。
MACLISP系:Lisp 1.5 → MacLisp → CommonLisp の『MIT系Lisp文化』
Interlisp系 :Interlisp-10→Interlisp-Dの対話型環境の『Xerox PARC系Lisp文化』
GNU EmacsはMacLispから分かれて来てるからMACLISP系に入れる。
0451デフォルトの名無しさん
2008/04/23(水) 22:59:220452デフォルトの名無しさん
2008/04/23(水) 23:39:39schemeは当初maclispで実装されたし、影響もそれなりにあるからmaclisp系っていえば
そうとも言えるんじゃないかな。
MIT系であるのは確かだよね。
0453デフォルトの名無しさん
2008/04/24(木) 00:12:24けど、なぜかあまり近づかない。なんでだろ。教えて。
ttp://codepad.org/0iV02ShG
0454デフォルトの名無しさん
2008/04/24(木) 00:13:280455デフォルトの名無しさん
2008/04/24(木) 00:16:33ここでは10ぐらいでかなり近くなってる。どして?
ttp://www.aomori-u.ac.jp/lab/inform/horibata/Scheme4.html
0456デフォルトの名無しさん
2008/04/24(木) 00:27:290457デフォルトの名無しさん
2008/04/24(木) 01:00:100458デフォルトの名無しさん
2008/04/24(木) 01:21:21有り難う御座いました。そのヒントで見つかりました。
ttp://codepad.org/sCNx3Zlh
でも微妙に値が違ってるようです。3つ目の末尾から。
まだ、他にも間違いがあるんでしょうか?
それとも精度の問題なんでしょうか。
0459デフォルトの名無しさん
2008/04/24(木) 01:31:180460デフォルトの名無しさん
2008/04/24(木) 01:33:38どう見ても問題ありません ><
0461デフォルトの名無しさん
2008/04/24(木) 01:40:10計算以外のところが原因なのかな?
ますます原因不明ですが今日のところは落ちます。
有り難う御座いました。またあした。
0462デフォルトの名無しさん
2008/04/24(木) 01:42:360463デフォルトの名無しさん
2008/04/24(木) 01:58:14euler加速の計算のdenominatorが0になってるんじゃないの?
0464デフォルトの名無しさん
2008/04/24(木) 03:00:40違うのかよ
0465デフォルトの名無しさん
2008/04/24(木) 04:23:07On Lisp書いたの誰だかわからないようなのが何書いても信憑性ないんだけど。
折角いい本なのに余計なことしやがって(-_メ)
0466デフォルトの名無しさん
2008/04/24(木) 04:48:55まあ、こんなところでちくちく攻撃してるやつの書評なんか読みたくもないがww
0467デフォルトの名無しさん
2008/04/24(木) 04:51:05鋭いこと書ける人は、ブログやら何やらで幾らでも「読者」を獲得できるこの時代、
大企業の威光を借りて「ここならボクちんの鋭いヒヒョウを皆に聞いてもらえるるる〜」と興奮しちゃうのは、
「自分では自分の鋭さを信じているが、どういうわけか(笑)他人にはそう思ってもらえない人」
だけになっちゃったんだ。
0468デフォルトの名無しさん
2008/04/24(木) 05:00:31Amazonに限らずネットの情報なんて大部分はそんなものだろう
0469デフォルトの名無しさん
2008/04/24(木) 05:39:450470デフォルトの名無しさん
2008/04/24(木) 09:59:58まあ尼のレビューの意義なんて内容よりも書く事自体にあるんじゃないのか。
文句があるならもっと良いレビューを書けばいいだけの話。
0471デフォルトの名無しさん
2008/04/24(木) 10:24:40Gauche本のレビュー書くのも大変だよなwww
一体、誰が書けば納得すんだよw
0472デフォルトの名無しさん
2008/04/24(木) 10:36:43誰が書けば納得するのか、じゃなくて、誰が書いても、内容がまともなら納得するんだよ。
馬鹿じゃないことがその人にとって大変なことなら、レビューを書くのは確かに大変だ。
0473デフォルトの名無しさん
2008/04/24(木) 10:41:38scheme版のmakeみたいなの無いの?
S式で依存関係とか生成規則をガリガリ書けるようなもの
0474デフォルトの名無しさん
2008/04/24(木) 11:52:19結構便利。公開してないけど。
0476デフォルトの名無しさん
2008/04/24(木) 13:13:21lispで動くシェルじゃだめなの?
0477デフォルトの名無しさん
2008/04/24(木) 14:22:17elispはshallow bindingじゃないから、
MacLisp系というのには難がある。
基本関数名もあまりMacLispMacLispしてない。
0478デフォルトの名無しさん
2008/04/24(木) 14:32:10少なくとも、InterlispよりはMaclisp系だよ。とりあえず defun だし。w
0479デフォルトの名無しさん
2008/04/24(木) 14:38:07http://www.levenez.com/lang/ みたいに系統樹にしてみると面白いかもな
0480デフォルトの名無しさん
2008/04/24(木) 16:57:13emacsのリファレンスにもmaclispに強く影響を受けてるって書いてるじゃん。
rmsがmaclispで育ってるんだから当然っていえば当然だと思うけど…。
0481デフォルトの名無しさん
2008/04/24(木) 18:48:35MirandaとかErlangとかLuaとかAliceとかCgとかHyperTalkとか載ってない。 orz´
0482デフォルトの名無しさん
2008/04/24(木) 18:51:13それSICPに載ってるやん
0483デフォルトの名無しさん
2008/04/24(木) 18:54:59最近話題のOzもない。Orz
0484デフォルトの名無しさん
2008/04/24(木) 20:10:19p.334からp.337の "3.5.3 Exploiting the Stream Paradigm" !
0485デフォルトの名無しさん
2008/04/24(木) 20:31:56日本語版ではp.198からp.200にあった。
0486デフォルトの名無しさん
2008/04/24(木) 21:19:45今日は良い日だった。
0487デフォルトの名無しさん
2008/04/24(木) 21:24:03>>484-485に書いてあるsqrtの計算をやってみた。πの計算にも使えるハズ。ヤッテナイケドw
ttp://codepad.org/8guLZUTv
0488デフォルトの名無しさん
2008/04/24(木) 21:34:38適当なこと言いました。やってみたら計算負荷が高いようです。timeoutしましたw
ttp://codepad.org/a4j62JqK
0489デフォルトの名無しさん
2008/04/24(木) 21:36:230490デフォルトの名無しさん
2008/04/24(木) 21:55:460491デフォルトの名無しさん
2008/04/24(木) 22:16:21ttp://codepad.org/sZyPIi4v
0492デフォルトの名無しさん
2008/04/25(金) 00:24:38Ex 3.59
exp-series
cosine-series
sine-series
Ex 3.60
mul-series
Ex 3.61
invert-unit-series
Ex3.62
div-series
tan-series
ttp://codepad.org/Lh7m712l
0493デフォルトの名無しさん
2008/04/25(金) 00:44:39>>398 runge-kutta ttp://codepad.org/gSEoxetW
>>458 Pi ttp://codepad.org/sCNx3Zlh
>>491 ln2 ttp://codepad.org/sZyPIi4v
>>492 exp-series cosine-series sine-series tan-series ttp://codepad.org/Lh7m712l
0494デフォルトの名無しさん
2008/04/25(金) 01:53:53ASDFをGaucheに移植すればいいんジャマイカ?
0495デフォルトの名無しさん
2008/04/25(金) 01:59:210496デフォルトの名無しさん
2008/04/25(金) 02:37:360497デフォルトの名無しさん
2008/04/25(金) 02:50:040498デフォルトの名無しさん
2008/04/25(金) 03:09:060499デフォルトの名無しさん
2008/04/25(金) 13:06:34Gaucheに移植→Schemeに移植
0500デフォルトの名無しさん
2008/04/25(金) 20:47:51内蔵関数の計算精度の比較。
expの場合、テーラー展開の202項目まで計算していた。
ttp://codepad.org/fmkvRZu2
0501デフォルトの名無しさん
2008/04/25(金) 21:11:53なんか遅すぎねえか、それ。
0502デフォルトの名無しさん
2008/04/25(金) 23:03:24Excel2003は190項までで打ち切ってる。
0503デフォルトの名無しさん
2008/04/25(金) 23:18:55accelerated-sequence euler-transform みたいなの使うんかな?
0504デフォルトの名無しさん
2008/04/25(金) 23:29:01テーラー展開って geometric-series power-series calc-series mul-stream を組み合わせると作れるのか。
SICPには書いてなかった。ネット上にも geometric-series power-series calc-series なんてなかった。
0505ムー子
2008/04/26(土) 15:12:342種類を用意する必要性ってあるの? let* だけでいいのでは?
0506デフォルトの名無しさん
2008/04/26(土) 16:14:30(lamnda (x)
(let ((x (car x) (y (cdr x))))
...
が, 出来なくなるじゃないか.
0507デフォルトの名無しさん
2008/04/26(土) 16:22:44define、set!、if、lambda、quote(とマクロ定義構文)さえあればいいのです。
letもlet*もlambdaに展開されるマクロです。
letrecはlambdaとset!に展開されるマクロです。
ただしlet*はletで記述できますが
letはlet*では記述できません。
たぶん。
0508ムー子
2008/04/26(土) 17:04:01(let
((name1 value1)
(name2 value2))
...)
は
(let*
((name1 value1))
(let*
((name2 value2))
...)
のように変換できるのでは。。。
0510ムー子
2008/04/26(土) 17:10:10> letはlet*では記述できません。
再挑戦。
(let
((name1 value1))
...)
は
(let*
((_name1 value1))
(let*
((name1 _name1))
...
に変換できそう。
ここで _name1 はユニークな識別子とする。
0511デフォルトの名無しさん
2008/04/26(土) 17:31:26黙ってろ
0512デフォルトの名無しさん
2008/04/26(土) 17:38:492つ以上ならそれぞれが同じ環境に属し
かつそれぞれが互いに不可視でなければならない。
let*の入れ子にしても1つのlet*で束縛しても
実現できない。
(と思う。たぶん。)
0513デフォルトの名無しさん
2008/04/26(土) 17:51:40=>((lambda (name1 name2) ...) value1 value2)
(let* ((tmp1 value1)(tmp2 value2)(name1 tmp1)(name2 tmp2)) ...)
=>((lambda (tmp1) ((lambda (tmp2) ((lambda (name1) ((lambda (name2) ...) tmp2)) tmp1)) value2)) value1)
0514デフォルトの名無しさん
2008/04/26(土) 22:29:04それは可愛そうだろ、せめて中間式くらい書いてやれよ
(let* (x x) (y x)...) => (let (x x) (let (y x)...
とか
0515デフォルトの名無しさん
2008/04/27(日) 01:18:10http://www.plt-scheme.org/software/mzscheme/
でいいんですか?したんですけど起動の仕方から分からない始末でして、
教えていただきたいんですよ
0516デフォルトの名無しさん
2008/04/27(日) 01:41:40Windows版ならMzScheme.exeを実行するだけです
インストーラはファイルを解凍するだけなので
ショートカットやpathの設定は自分でやってください
0517デフォルトの名無しさん
2008/04/27(日) 03:03:56ありがとうございます。
実行ってそのファイルを直接クリックすればいいんですか?
http://www.sampou.org/scheme/t-y-scheme/t-y-scheme-Z-H-3.html#node_chap_1
↑やつをチャプター7までをゴールデンウィークあけまでに
やっとっけって授業でいわれまして・・・
ダウンロードして↑のやつの通りにやろうとしたらできなかったんですよ。
0518デフォルトの名無しさん
2008/04/27(日) 11:27:38授業でやってるはずだと思うが?
0519デフォルトの名無しさん
2008/04/27(日) 14:57:56「あっダウンロードすればいいのね」くらいにしか聞いてなくて
他のことしていて・・・
自業自得なんですけど、実行できないと何もできないんですよ(>_<)
どうか、助けてくださいm(_ _)m
0520デフォルトの名無しさん
2008/04/27(日) 15:25:43ttp://www.plt-scheme.org/software/drscheme/
ttp://www.shido.info/lisp/scheme1.html
ttp://www.db.is.kyushu-u.ac.jp/kiso/f2/
ttp://www.score.is.tsukuba.ac.jp/lectures/STEC/DrScheme/index.html
ttp://www.csg.is.titech.ac.jp/~kourai/lecture/drscheme/drscheme.html
0521デフォルトの名無しさん
2008/04/27(日) 15:27:550522デフォルトの名無しさん
2008/04/27(日) 15:45:55そうすれば、言語設定とかをいじる練習になる。
(require (lib "turtles.ss" "graphics"))
(turtles #t)
(define (dr n)
(if (< n 0) (display "終了\n")
(begin
(draw (* n 4))
(turn n)
(dr (- n 1)))))
(dr 100)
0523デフォルトの名無しさん
2008/04/27(日) 16:00:51しかしLisperはその数に比べてあまりに少なく感じる。
なぜだろう。
マッカーシズムの嵐でも吹き荒れていて
Lisper狩りが行われているのだろうか。
(マッカーシズムっていうとLispの場合は逆の意味みたいだけど)
0524デフォルトの名無しさん
2008/04/27(日) 16:16:47母国語として(無理してでも)使う人が少ないからじゃない?
教養として学んでる人は沢山いるとは思うけど、実際書くのはRubyとか…。
そういうギャップを埋めようとしているGaucheは素晴らしいと思う。
0525デフォルトの名無しさん
2008/04/27(日) 16:48:05Arcも書き捨て用スクリプト言語を意識した構文が入ってるCLという感じ。
GaucheもLibraryのSRFIサポートがもう少しCPANみたいに使い易くなればなぁ。
0526デフォルトの名無しさん
2008/04/27(日) 17:05:16SchemeをCのライブラリとして使えば、GUIもシステムコールも使い放題です
「ライブラリをラップするライブラリがない」
この閉塞感を打ち破るにはC言語の力が必要なのです
0527デフォルトの名無しさん
2008/04/27(日) 17:29:00今日も乙です
0528デフォルトの名無しさん
2008/04/27(日) 17:38:530529デフォルトの名無しさん
2008/04/27(日) 17:43:340530デフォルトの名無しさん
2008/04/27(日) 17:55:47バカにする暇があったらバカになれ
0531デフォルトの名無しさん
2008/04/27(日) 19:52:060532デフォルトの名無しさん
2008/04/27(日) 19:59:140533デフォルトの名無しさん
2008/04/27(日) 20:03:420534デフォルトの名無しさん
2008/04/27(日) 20:04:25どうせあほうならみないほうがましさ
0535デフォルトの名無しさん
2008/04/27(日) 20:10:48CUDAは今のところC言語しかないからLisp/SchemeをC言語にパースするしかないんジャマイカ?
0536デフォルトの名無しさん
2008/04/27(日) 20:26:43詳細不明だけど、
http://people.csail.mit.edu/jrb/Projects/gpugooze.htm
みたいな研究はあるみたいよ。
0537デフォルトの名無しさん
2008/04/27(日) 21:01:50> GaucheもLibraryのSRFIサポートがもう少しCPANみたいに使い易くなればなぁ。
どういう意味? 標準で同梱されてないSRFIを使う場合ってこと?
0538デフォルトの名無しさん
2008/04/27(日) 21:06:50パース?
0539デフォルトの名無しさん
2008/04/27(日) 21:08:59NVidia GLX 1.0-7174で動作します(nVidiaのOpenGLドライバ)。
こういったものが作成されないと使えるようにならないでしょう。
現状ではCgやHLSL、GLSLといった高級シェーディング言語もC言語経由で使用してます。
今までに3つGPGPU専用のプログラミング言語が登場してます。
・ Sh:ウォータールー大学
・ Scout:並列コンピュータメーカのThinking Machines社(1999年オラクルが買収)
・ Brook:スタンフォード大学
0540デフォルトの名無しさん
2008/04/27(日) 21:14:06ソースをパースし解析木を作った後、 バイトコードをメモリ上に生成、
そしてそのメモリ上のバイトコードを、 GPUドライバが実行します、ってことだろ。
0541デフォルトの名無しさん
2008/04/27(日) 21:19:30たしかにSICPやってた頃におれも、SRFIのstreamとか使いにくいと思った。
複数のファイルに分散してるのがわかりにくいと思う。
0542デフォルトの名無しさん
2008/04/27(日) 21:26:15PUに比べて単純なアーキテクチャを持ち、伸びしろの上限もまだ見えていないGPUとCPUとの性能格差はますます広がるだろう。
単体の処理性能は理論値で300Gflopsを超え、1システムに4台のボード*1を組み込めるため、
スパコン並みの1Tflopsの処理性能が100万円以下のシステムでも実現可能である。
こんな安価で高性能のプロセッサを使わない理由はない。
Lisp系言語でもサポートするべきだと思う。
0543デフォルトの名無しさん
2008/04/27(日) 21:26:18毎回無駄にfindが大活躍だぜ
0544デフォルトの名無しさん
2008/04/27(日) 21:30:32処理能力は、500Gflops程度で、新しいアーキテクチャの出現でテラフロップスを突き抜ける日は目前に迫っている。
0545デフォルトの名無しさん
2008/04/27(日) 21:32:40サポートがなくても2割をCで書いて8割をLispで書くとか
できるんじゃないの
0546デフォルトの名無しさん
2008/04/27(日) 21:39:40条件分岐のペナルティが無茶苦茶でかくて、lispらしい
プログラムはまず書けないだろうけどそれでもいいの?
lispらしいプログラムを書かないのなら言語ブリッジがあれば
十分じゃないかと思うんだけど。
0547デフォルトの名無しさん
2008/04/27(日) 21:49:48BrookあたりもStream Computingにあわせるようにコードを吐くから、Lispでも最適なコードへ変換してコードを吐き出す必要はある。
最初はベクターとかストリームだけでも早くなればありがたいと思う。
0548デフォルトの名無しさん
2008/04/27(日) 21:55:48コンパイラが賢くなりゃいいんじゃね
もしくは *Lisp とか CM Lisp とかの方向だってある
0549デフォルトの名無しさん
2008/04/27(日) 22:01:510550デフォルトの名無しさん
2008/04/27(日) 22:10:000551デフォルトの名無しさん
2008/04/27(日) 22:13:35自分が手を出せばいいんじゃね?
0552デフォルトの名無しさん
2008/04/27(日) 22:20:01了解。部分的でもGPUに振りたいものはあると。
>>548 >>549
*Lispは知らなかった。thx
0553デフォルトの名無しさん
2008/04/27(日) 22:30:18デスクトップも1Tflopsの時代なのか・・・
0554デフォルトの名無しさん
2008/04/27(日) 22:39:10nVidiaのTesla向けプログラムでも、NVIDIAが用意しているツールとライブラリ「CUDA」を使って、並列処理を意識した実装が必要。
Lisp系でも同様の配慮は必要。何にでも使えるという幻想は棄てた方が良い。
0555デフォルトの名無しさん
2008/04/27(日) 22:41:16汎用で出る速度な訳じゃないところがミソなので普通の生活してると役に立たない。
0556デフォルトの名無しさん
2008/04/27(日) 22:41:39ムーアで伸びた分も、ちょっと油断するとアムダールで潰されそう
分野によってはまず計算機屋さんに超並列向きのアルゴリズムを考案してもらわないと
0557デフォルトの名無しさん
2008/04/27(日) 22:46:02GeForce 8800 GT は336 GFLOPS。デスクトップの1Tflops時代は2年後ぐらいと予想されている。
0558デフォルトの名無しさん
2008/04/27(日) 23:12:250559デフォルトの名無しさん
2008/04/27(日) 23:23:47GPUに計算させてその結果を受け取るには、最低でも一回、GPU側とデータを往復する必要がある。
このコストが洒落にならない程でかいので、
ベクターを高速化するためには最低でも10Mとか100Mを一度に扱わない限り高速化は難しいよ。
0560デフォルトの名無しさん
2008/04/27(日) 23:27:04具体的に
0561デフォルトの名無しさん
2008/04/27(日) 23:28:48シミュレーションとかで有限要素法を使うとそれぐらいはザラ。
0562デフォルトの名無しさん
2008/04/27(日) 23:34:01GPUのドライバを動かすコストもあるだろうけど、主にレイテンシのことじゃないか。
0563デフォルトの名無しさん
2008/04/27(日) 23:37:52システムメモリ(普段使っているメモリ) - GPU上のビデオメモリ 間の転送速度は
システムメモリ間同士のそれより圧倒的に遅い。
多分、数倍から数十倍は違う。
0564デフォルトの名無しさん
2008/04/27(日) 23:50:450565デフォルトの名無しさん
2008/04/27(日) 23:56:23バスを介す関係で確実に遅くはなるよ。
少なくとも数年前まではそうだった。最近は変わったかもしれないが。
あと、フージョンチップを目論むAMDがメモリ業者を買収してるし、
この辺りに改善の可能性があることはたしか。
0566デフォルトの名無しさん
2008/04/27(日) 23:58:55GPUが直接主記憶からフェッチしないのか?
0567デフォルトの名無しさん
2008/04/28(月) 00:00:170568デフォルトの名無しさん
2008/04/28(月) 00:06:22それは無いだろう。
それじゃあ、「ビデオメモリ○○M搭載」には主記憶のサポート程度の意味しか無くなる。
0569デフォルトの名無しさん
2008/04/28(月) 00:10:130570デフォルトの名無しさん
2008/04/28(月) 00:11:09だから主記憶のサポート程度の意味しか無いんだよ。(極論だけど)
0571デフォルトの名無しさん
2008/04/28(月) 00:17:16フェッチできるかもしれんが、そうしたら、
GPU内で処理を完結するよりも圧倒的に処理速度が落ちないか?
>>570
そんな話をされたら、nVidiaとATIの中の人がやさぐれてしまいますよ。
0572デフォルトの名無しさん
2008/04/28(月) 00:17:440573デフォルトの名無しさん
2008/04/28(月) 00:19:51そのためにフュージョンがある
0574デフォルトの名無しさん
2008/04/28(月) 00:21:04そりゃ落ちるでしょう。だから容量とのトレード。下手に使えば遅くなるが、参照頻度の
低いものだったら全体への性能へのインパクトは少ないだろうね。
そもそもビデオメモリ載せてないGPUだってあるわけだし。
0575デフォルトの名無しさん
2008/04/28(月) 00:23:130576デフォルトの名無しさん
2008/04/28(月) 00:25:09俺もフムフムヌプヌプ本買ってくるか・・・・ λ.......
0577デフォルトの名無しさん
2008/04/28(月) 00:47:440578デフォルトの名無しさん
2008/04/28(月) 00:49:380579デフォルトの名無しさん
2008/04/28(月) 00:50:480580デフォルトの名無しさん
2008/04/28(月) 00:51:510581デフォルトの名無しさん
2008/04/28(月) 00:56:24世界のどこかには、そんなものがあるような気がする
0582デフォルトの名無しさん
2008/04/28(月) 01:00:06つまり、君はLispが使えない、って事だよね。
0584デフォルトの名無しさん
2008/04/28(月) 01:30:50そうだとしたらそのうちCPU内部に組み込まれるのかな。
0585デフォルトの名無しさん
2008/04/28(月) 01:37:58具体的に
0586デフォルトの名無しさん
2008/04/28(月) 01:54:47GPUは用途が限られるからどうかな。
分野によっては革命的なことになるかもしれんけど。
> そうだとしたらそのうちCPU内部に組み込まれるのかな。
多分そうなる。
IntelとAMDはこれを前提にロードマップを作成しているはず
0587デフォルトの名無しさん
2008/04/28(月) 05:48:46sb-simd なんつうものがあるようだが...
0588デフォルトの名無しさん
2008/04/28(月) 07:29:57「有限の資源をやりくりするにはどうしたらいいか」という設問には、Lispはかなり不向きなのではないか。
0589デフォルトの名無しさん
2008/04/28(月) 08:48:11そうでもない。ただ、そういうタイトなコードをLispで書くと見かけは
Cと大差なくなる。副作用使いまくり、型宣言ありまくりなので。
マクロを使えるのは楽なんだが。
0590デフォルトの名無しさん
2008/04/28(月) 08:58:12↓でも読んで静かにしていてください。
NESL: A nested data-parallel language
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.54.3657
0591デフォルトの名無しさん
2008/04/28(月) 11:10:32ttp://practical-scheme.net/vault/gauche-gl-refe.html#SEC65
0592デフォルトの名無しさん
2008/04/28(月) 11:19:37ttp://en.wikipedia.org/wiki/%2Alisp
Simulator for *Lisp language for Connection Machine, circa 1989.
ttp://examples.franz.com/id/massar/Starsim-f20_s0/Starsim-f20-rn.html
0593デフォルトの名無しさん
2008/04/28(月) 15:29:38boost.scheme
ほしいなあ
0594デフォルトの名無しさん
2008/04/28(月) 18:30:52http://cvs.kahua.org/cgi-bin/viewcvs.cgi/Gauchebox/
Meadowとか諸々を込み込みにしたGaucheパッケージ。
初心者にもオススメしやすくなった。
でもさー。インストールが簡単でもMeadowって時点でホントの初心者にはもうだめぽ。
0595デフォルトの名無しさん
2008/04/28(月) 18:33:45まだテスト版なのでフィードバック等を以下にお願いします。
http://practical-scheme.net/wiliki/wiliki.cgi?Gauche%3aGauchebox
0596デフォルトの名無しさん
2008/04/28(月) 18:47:13でもまあ、下をみてもきりがないからなあ。
とりあえず、前進してるんだからそのうちどうにかなるかもよ。
0597デフォルトの名無しさん
2008/04/28(月) 19:02:340598デフォルトの名無しさん
2008/04/28(月) 20:22:53板垣死すとも自由は死せず!
言論の弾圧は許さん!
チベットに自由を!
共産主義者の犬め!
0599デフォルトの名無しさん
2008/04/28(月) 23:34:130600デフォルトの名無しさん
2008/04/28(月) 23:51:10中国人は国に帰れ
0601デフォルトの名無しさん
2008/04/29(火) 00:11:37ホントの初心者はフムフム本なんか読まないから問題ない
0602デフォルトの名無しさん
2008/04/29(火) 00:49:09Meadowはこの前入れたばっかりなんだけど、アンインスコした方がいい?
「プログラムの追加と削除」の一覧に出てこないんだけど、
ひょっとしてファイル置いてあるだけなのかな?
0603デフォルトの名無しさん
2008/04/29(火) 00:57:280604デフォルトの名無しさん
2008/04/29(火) 00:57:41Gacheboxは既存のGaucheやMeadowには影響しないのでどんどんインスコしてください
とゆーかテストしてください。
0605デフォルトの名無しさん
2008/04/29(火) 01:19:47こちらでも確認しました。
Meadow\install.exeが動いていなかった。直しますので、
とりあえず手動でMeadow\install.exeを動かしてみてください。
0606デフォルトの名無しさん
2008/04/29(火) 01:36:38-S\\ *scratch* Lisp Interaction
になってるのですが、これがSchemeモードなの?
0607デフォルトの名無しさん
2008/04/29(火) 01:43:52Emacs入門みたいな本を買ってこい
0608デフォルトの名無しさん
2008/04/29(火) 02:05:16死ね
0609デフォルトの名無しさん
2008/04/29(火) 02:33:15モードが使えないとか・・・・ ふざけんなよ?って感じかな。
0610デフォルトの名無しさん
2008/04/29(火) 02:39:34インストールしないとダメなんだよ
0611デフォルトの名無しさん
2008/04/29(火) 02:41:44で、どうやったらGaucheのモードになるのか教えて(・-・)
0612デフォルトの名無しさん
2008/04/29(火) 02:48:54あと$HOME/.emacsに
(setq scheme-program-name "gosh -i")
ってかいておくか lisp-interactionモードで↑を入力して最後の")"の後ろでCtrl-Jを入れてから
ALT+X を押して run-scheme<Enter>と入力すると結構幸せかもよ?
それ以上は>>607に従ってくれよ。
0613デフォルトの名無しさん
2008/04/29(火) 02:53:400614デフォルトの名無しさん
2008/04/29(火) 03:10:54やっぱ難しいね。
0615デフォルトの名無しさん
2008/04/29(火) 04:18:09何この馬鹿?
0616デフォルトの名無しさん
2008/04/29(火) 04:18:44Emacs入門みたいな本を買ってこい
Emacs入門みたいな本を買ってこい
Emacs入門みたいな本を買ってこい
Emacs入門みたいな本を買ってこい
Emacs入門みたいな本を買ってこい
Emacs入門みたいな本を買ってこい
Emacs入門みたいな本を買ってこい
Emacs入門みたいな本を買ってこい
Emacs入門みたいな本を買ってこい
Emacs入門みたいな本を買ってこい
0617デフォルトの名無しさん
2008/04/29(火) 04:55:05>>614もそれで我慢したら?たいして難しくもないし
0618デフォルトの名無しさん
2008/04/29(火) 10:59:45「プログラミングGauche」のサンプルコードをWindowsで試せるようにする目的で開発しています。
0619デフォルトの名無しさん
2008/04/29(火) 11:03:48でもさ、Kahuaとか動かないし、Windowsで全部は動かないポイ
0620デフォルトの名無しさん
2008/04/29(火) 12:58:28UNIXドメインソケットを使うKahuaは無理としても、
26章の継続サーバはMinGW版Gaucheで動いた報告あり。
0621デフォルトの名無しさん
2008/04/29(火) 19:19:53Amazonでは「 入門 GNU Emacs 第3版」の方が評価が高かった。でも\4,000もするので買わないw
0622デフォルトの名無しさん
2008/04/29(火) 19:43:30いい本は少々無理しても買っといた方がいいのに
真面目にやる気がないならメモ帳でも使ってれ
0623デフォルトの名無しさん
2008/04/29(火) 20:07:320624デフォルトの名無しさん
2008/04/29(火) 20:10:54なんか尻馬に乗って偉そうに言ってる奴等がいるが、
お前らもどうせ大学で配布された手引書かなんかで覚えたんだろ?
エディタの手引書で4000円なんか高すぎだろ。
んなことだからEmacsはエディタ界の老害とか言われるんだよね。
そのイメージでSchemeが語られる日も近いかもしれないな。
0625デフォルトの名無しさん
2008/04/29(火) 20:25:14糞高い本を買わない奴は馬鹿扱いされるYO!
0626デフォルトの名無しさん
2008/04/29(火) 20:52:440627デフォルトの名無しさん
2008/04/29(火) 21:18:500628デフォルトの名無しさん
2008/04/29(火) 21:32:490629デフォルトの名無しさん
2008/04/29(火) 22:30:43あれだけ高機能なソフトをダタで使えるんだから
マニュアルに4000円くらいかけたところで
全体としてはかなり安価だと思うんだが。
0630デフォルトの名無しさん
2008/04/29(火) 22:47:190631デフォルトの名無しさん
2008/04/29(火) 22:49:570632デフォルトの名無しさん
2008/04/29(火) 22:50:320633デフォルトの名無しさん
2008/04/29(火) 23:42:33年間50万近く書籍に消費する俺に喧嘩を買えと言うことですか?
0634デフォルトの名無しさん
2008/04/30(水) 00:02:27Emacsは全部infoとネットの解説で覚えたし、
あれだけドキュメントが充実してるエディタって、
そうそうないと思うんだが。
0635デフォルトの名無しさん
2008/04/30(水) 00:05:35\41,666/month
\9,615/week
\1,370/day
0636デフォルトの名無しさん
2008/04/30(水) 00:08:03初期投資って・・・・・格差社会なんだなあ・・・
0637デフォルトの名無しさん
2008/04/30(水) 00:08:11おまえこそ流れ嫁、ボケ。
0638デフォルトの名無しさん
2008/04/30(水) 00:08:440639デフォルトの名無しさん
2008/04/30(水) 00:14:05話がズレてるけどw
地方と都市部の格差や業種の格差など色々ある。この10年ぐらいでかなり構造変化が進んだと思う。
仕事してると相手先の話から実感する部分はある。
0640デフォルトの名無しさん
2008/04/30(水) 00:32:420641デフォルトの名無しさん
2008/04/30(水) 01:43:18ほとんど毎日の様に買っている上に専門書も買ったらそのくらい行くんですが。
まぁ活字中毒なんでしょうがないんだけどな。
図書館の利用をまじめに考慮する今日この頃
その前に床が抜けそうだけどな。
0642デフォルトの名無しさん
2008/04/30(水) 02:46:46一冊の本をきちんと理解するほうがいいんじゃないか?
そんなに毎日買って、結局買うだけで満足してないか?
0643デフォルトの名無しさん
2008/04/30(水) 03:18:240644デフォルトの名無しさん
2008/04/30(水) 03:23:29結果的に、たった1ページの記述が役に立つことだってある。
0645デフォルトの名無しさん
2008/04/30(水) 04:22:05てかさ、Emacsなんてめちゃめちゃ充実しているマニュアルが
本体についてきているのだが、なぜ
> エディタの手引書で4000円なんか高すぎだろ。
> んなことだからEmacsはエディタ界の老害とか言われるんだよね。
などといわれなければならないのかわからん。
ほんとの初心者向けにはチュートリアルもついてるぞ。
0646デフォルトの名無しさん
2008/04/30(水) 05:36:440647デフォルトの名無しさん
2008/04/30(水) 07:23:58Emacsアンチがそういうことにしたいから。
0648デフォルトの名無しさん
2008/04/30(水) 13:17:200649デフォルトの名無しさん
2008/04/30(水) 17:57:490650デフォルトの名無しさん
2008/04/30(水) 18:18:200651デフォルトの名無しさん
2008/04/30(水) 18:19:49対応する括弧に自動で色つかないと見にくい
括弧の色が中にいくほどグラデーションで
少しずつ色がついていくようなのないの?
0652デフォルトの名無しさん
2008/04/30(水) 19:16:37ぐぐれ
0653デフォルトの名無しさん
2008/04/30(水) 19:20:560654デフォルトの名無しさん
2008/04/30(水) 19:41:470655デフォルトの名無しさん
2008/04/30(水) 19:46:370656デフォルトの名無しさん
2008/04/30(水) 20:10:03/| /| | |
||__|| | Please don't |
/ O O\__ feed |
/ \ the trolls |
/ \ \ |
/ _ \ \ ----------------------
/ |\____\ \ ||
/ | | | |\____/ ||
/ \|_|_|/ | __||
/ / \ |____| ||
/ | | /| | --|
| | |// |____ --|
* _ | |_|_|_| | \-/
*-- _--\ _ \ // |
/ _ \\ _ // | /
* / \_ /- | - | |
* ___ c_c_c_C/ \C_c_c_c____________
0657デフォルトの名無しさん
2008/04/30(水) 20:19:20ポール・グレアムが使ってるっていってもなあ…。
初心者にはどっちもどっちかもしれないが、
viのほうがEmacsより敷居高くないか? モードあり+S式操作は。
ちなみに、viのほうがS式操作が便利なら、速攻乗り換える。
0658デフォルトの名無しさん
2008/04/30(水) 20:31:21得手不得手があるからどっちが便利って事はない。
0659デフォルトの名無しさん
2008/04/30(水) 20:50:57http://groups.google.com/group/comp.lang.lisp/browse_thread/thread/d0ce288e1cd22654/cc25683874ecc457
0660デフォルトの名無しさん
2008/04/30(水) 21:37:270661デフォルトの名無しさん
2008/04/30(水) 21:38:51UnixとCが切り離せるように、lispとemacsだって切り離せる。
0662デフォルトの名無しさん
2008/04/30(水) 21:48:38vi にも lisp モードあるよ
http://ex-vi.sourceforge.net/viin/paper-6.html#section41
0663デフォルトの名無しさん
2008/04/30(水) 23:05:18頭から胴体が切り離せるように、lispとemacsだって切り離せる、ってこと?
0664デフォルトの名無しさん
2008/04/30(水) 23:13:07CがUNIXから離れて普及したように、(>>661の前半)
elispがEmacsから離れて広まることはありうる。
しかし、UNIXをC以外で書き直したり、
EmacsをelispあるいはLisp族以外で書き直す(>>661の後半)のはほとんど無理。
0665デフォルトの名無しさん
2008/04/30(水) 23:17:10emacs が elisp で書かれている必要はないし, emacs の拡張言語が
elisp である必要もない
teco.el ってのがあってだな, teco.el を使って GNU emacs 18 の
emacslisp-mode 再実装した大馬鹿ものを俺は知っている
0666デフォルトの名無しさん
2008/04/30(水) 23:25:460667デフォルトの名無しさん
2008/04/30(水) 23:50:370668デフォルトの名無しさん
2008/05/01(木) 00:04:510669デフォルトの名無しさん
2008/05/01(木) 00:20:27Lispを使うのにEmacsを無理に使う必要は無いだろうな。まあ便利だと思えば使えばいいだけ。
0670デフォルトの名無しさん
2008/05/01(木) 00:38:550671デフォルトの名無しさん
2008/05/01(木) 03:08:43されてないかな?
Gaucheに移植できないだろうか。
0672デフォルトの名無しさん
2008/05/01(木) 03:52:11>TIのPC-Schemeに付属してたエディタ(edwin)ってソース公開
>されてないかな?
http://ftp.cs.indiana.edu/pub/scheme-repository/imp/pcscheme/
PC-Scheme のソース見てみたら edwin のソースも入ってたよ。
disk1.zip の中にあった。
http://ftp.cs.indiana.edu/pub/scheme-repository/imp/pcs-geneva/
PC-Scheme 派生の PCS/Geneva のソースコードにも edwin の
ソースコードが入ってる。sources.tar.gz の中ね。
R3RS で実装されているみたいだけど R5RS とどれだけ違うのか
良く分からん…
つか、これ 486 で動くネイティブコンパイラなんだ。知らんかった…
0673デフォルトの名無しさん
2008/05/01(木) 11:29:250674デフォルトの名無しさん
2008/05/01(木) 14:50:550675デフォルトの名無しさん
2008/05/01(木) 16:53:420676デフォルトの名無しさん
2008/05/01(木) 17:29:31Meadow/install.exeが実行されないバグを直しました。お試しください。
0677デフォルトの名無しさん
2008/05/01(木) 19:31:30自分はwin使わないけど、乙です
0678デフォルトの名無しさん
2008/05/02(金) 06:22:20この動画のプログラム作成中モジュールファイルを上書きするたびに
すぐgosh側で使えているように見えるのですが
これはどのように同期しているのでしょうか?
自分は開発のときにreloadなどを多用しているのでどのようにすれば
このようにできるのでしょうか?
よろしくお願いします
0679デフォルトの名無しさん
2008/05/02(金) 09:09:37C-x C-e で修正を反映
0680デフォルトの名無しさん
2008/05/02(金) 11:27:10一気に楽になりました
0681デフォルトの名無しさん
2008/05/02(金) 17:14:28情報ありがとう。
PC98で動かしたPC-Schemeが最初に動かしたSchemeだったので
ターミナルで動くEdwinが好きだ。GaucheやMZ-Schemeで動く
CUIのシンプルなのがあったら使いたいね。
0682デフォルトの名無しさん
2008/05/02(金) 17:32:59よろしくお願いします
0683デフォルトの名無しさん
2008/05/02(金) 17:41:060684デフォルトの名無しさん
2008/05/02(金) 18:53:19Meadowを3にしてみました。日本語も表示/入力できます。
注意点:
Meadowがすでにインストール済みの環境ではMeadow3のショートカット
(スタートメニューとデスクトップ)を上書きします。
Meadowがインストール済みの方はGaucheboxではなく、
Gauche-win32-0.8.13.exeをインストールしてください。
0685デフォルトの名無しさん
2008/05/02(金) 21:44:28ttp://www.phys.uu.nl/DU/num_recipes/lisp.1ed/senac/readme.htm
次スレのテンプレに加えてください。
他に数値計算の参考になるところ知ってたら教えてください。
0686デフォルトの名無しさん
2008/05/02(金) 22:05:35を中心に集めてみた。
Common Lisp version
ttp://www.phys.uu.nl/DU/num_recipes/lisp.1ed/senac/nr11.l
Scheme version
ttp://list.cs.brown.edu/pipermail/plt-scheme/2008-March/023965.html
ttp://k16journal.blogspot.com/2006_09_01_archive.html
ttp://hw001.gate01.com/sikano/src/jacobi.scm
ttp://practical-scheme.net/wiliki/wiliki.cgi?sasagawa%3Amatrix
Gauche + GSL (shiro)
ttp://ja.doukaku.org/48/nested/
0687デフォルトの名無しさん
2008/05/02(金) 23:30:59�d。やっぱ、Numerical Recipes in Scheme が無いせいで名前が統一されてない感じ。
0688デフォルトの名無しさん
2008/05/03(土) 12:09:42add-load-pathするのが面倒なのでload-pathに一度登録して消えないように
できないでしょうか?
よろしくお願いします
0689デフォルトの名無しさん
2008/05/03(土) 12:39:45ttp://practical-scheme.net/gauche/man/gauche-refj_14.html#SEC16
これ以外の方法だと、Gauche起動用のラッパーを、
シェルスクリプトなりバッチファイルなりSchemeなりで書くとか、
ショートカットに引数を指定するとか、好きにやってくれ。
0690デフォルトの名無しさん
2008/05/03(土) 13:05:13(:= (x y z) (1 2 3))
とすると
(define x 1)
(define y 2)
(define z 3)
としてくれるようなマクロを書こうと思ったのですが
(define-syntax :=
(syntax-rules ()
((_ (x) (a)) (define x a) )
((_ (x y ...) (a b ...)) (define x a) (_ (x ...) (a ...) ))
((_ var val) (define var val) ) ))
という形ではだめです
どうしたらよいのでしょうか
0691デフォルトの名無しさん
2008/05/03(土) 13:29:38http://common-lisp.net/project/gsll/
0692デフォルトの名無しさん
2008/05/03(土) 13:32:10(define-syntax defs
(syntax-rules ()
((_ (var ...) (obj ...))
(begin (define var obj) ...))))
(defs (x y z) (1 2 3))
0693デフォルトの名無しさん
2008/05/03(土) 18:09:28あぁ、車なんだよなw
0694デフォルトの名無しさん
2008/05/03(土) 19:22:09今までそういう脳内bindなかったけど今マップされちまったじゃねぇかw
0695デフォルトの名無しさん
2008/05/03(土) 20:23:54mapもなw
0696デフォルトの名無しさん
2008/05/03(土) 20:42:43だってcar,cdrはCAR,CDRと略語の意味で覚えた人とか居るはずなのにそこに突っ込みますかw(data register,address register)
0697デフォルトの名無しさん
2008/05/03(土) 20:46:200698デフォルトの名無しさん
2008/05/03(土) 21:02:440699デフォルトの名無しさん
2008/05/03(土) 21:03:540700デフォルトの名無しさん
2008/05/03(土) 23:24:27(append (cdr a) (list (car a)))
0701デフォルトの名無しさん
2008/05/03(土) 23:26:29GLS はどうやったら呼べますか?
0702デフォルトの名無しさん
2008/05/03(土) 23:32:110703デフォルトの名無しさん
2008/05/03(土) 23:34:580704デフォルトの名無しさん
2008/05/04(日) 00:47:54下北沢の飲み屋でみんなで一緒に飲んだとか
書いてあってうらやましかったんだけど。
0705デフォルトの名無しさん
2008/05/04(日) 02:20:24http://journal.mycom.co.jp/articles/2008/05/02/coolchips5/index.htm
0706デフォルトの名無しさん
2008/05/04(日) 02:21:26リンク失敗。こっち。
http://journal.mycom.co.jp/articles/2008/05/02/coolchips5/index.html
0707デフォルトの名無しさん
2008/05/04(日) 02:31:40ttp://www010.upp.so-net.ne.jp/okshirai/HOPL2-Uncut-j.txt
0708デフォルトの名無しさん
2008/05/04(日) 02:33:48Asimov の「我はMAPCAR」みたく?w
0709デフォルトの名無しさん
2008/05/04(日) 02:41:38それの原文
Guy L. Steele Jr., Richard P. Gabriel "The Evolution of Lisp"
ttp://www.dreamsongs.org/NewFiles/HOPL2-Uncut.pdf
0710デフォルトの名無しさん
2008/05/04(日) 06:36:46Lispに対するAlgolスタイルのシンタックスを再発明し続けることを
予期し、彼らは、最初の夢中になる期間の後、それを拒絶し続ける
だろうということを同じく確信している(おそらく、このプロセスは、
Lispハッカーのための通過儀礼だと考えられるだろう)。
/\___/ヽ ヽ
/ ::::::::::::::::\ つ
. | ,,-‐‐ ‐‐-、 .:::| わ
| 、_(o)_,: _(o)_, :::|ぁぁ
. | ::< .::|あぁ
\ /( [三] )ヽ ::/ああ
/`ー‐--‐‐―´\ぁあ
0711デフォルトの名無しさん
2008/05/04(日) 13:03:57一度は夢中になれw
でも、「最初の」ってことは2度目もあるのか?
0712デフォルトの名無しさん
2008/05/04(日) 14:57:09K&RもCの後でLimboを作っているし
Javaを作ったメンバーにLisperがいないとは言わせないw
0713デフォルトの名無しさん
2008/05/04(日) 15:26:57>>710の文はREDUCEのRLISPみたいな奴のことだろ。
0714デフォルトの名無しさん
2008/05/04(日) 16:14:12>>707の
3.7 いくつかの著しい失敗
から読めば分かるよ
0715デフォルトの名無しさん
2008/05/04(日) 17:09:35何言ってんの?
0716712
2008/05/04(日) 17:14:130717デフォルトの名無しさん
2008/05/04(日) 17:18:370718デフォルトの名無しさん
2008/05/04(日) 17:32:48Gosling Emacs (Mock Lisp) => Java
0719デフォルトの名無しさん
2008/05/04(日) 17:34:07RLISPって何?
0720デフォルトの名無しさん
2008/05/04(日) 17:35:18http://www.amazon.co.jp/dp/9810214790
0721デフォルトの名無しさん
2008/05/04(日) 17:37:340722デフォルトの名無しさん
2008/05/04(日) 17:42:39(let-keywords args ((name "Anonymous")
(age "unknown"))
(print name " is " age " years old."))))
(person :name "hogehoge" :age 99)
これが動かないのですが、どこが間違ってるんですかね・・・
0723デフォルトの名無しさん
2008/05/04(日) 17:49:500724デフォルトの名無しさん
2008/05/04(日) 17:50:30なんじゃね。知らんけど。
0725デフォルトの名無しさん
2008/05/04(日) 18:02:30EmacsLispではdefineじゃなくdefunでおk
0726デフォルトの名無しさん
2008/05/04(日) 18:15:471960年代終わりごろに開発が進められたREDUCEっていう数式処理システムがあって、
これを書くためにLISP 1.5をもとにしたStandard LISPというLISP方言がつくられた。
で、このStandard LISPにはRLISPと呼ばれるAlgol風のシンタクスが定義されてて、
REDUCEユーザーは基本的にS式じゃなくて、このAlgol風の言語でプログラミングする
ようになってる。
0727デフォルトの名無しさん
2008/05/04(日) 18:26:33http://reduce-algebra.com/docs/sl.pdf
これが RLisp のコードなのかな
http://centaur.maths.qmw.ac.uk/REDUCE/packages/rtrace/rtrace.red
0728デフォルトの名無しさん
2008/05/04(日) 18:33:320729デフォルトの名無しさん
2008/05/04(日) 18:43:57REDUCEは最も有名な数式処理システムだったし、
STANDARD LISPは最小公約数的なLisp仕様だったから、
ベンチマークにも良く使われた。
0730デフォルトの名無しさん
2008/05/04(日) 18:50:050731722
2008/05/04(日) 18:51:020732デフォルトの名無しさん
2008/05/04(日) 18:53:36これか
ttp://karetta.jp/book-node/gauche-hacks/007611
0733デフォルトの名無しさん
2008/05/04(日) 18:54:49let-keywords =>get-keywords
0734デフォルトの名無しさん
2008/05/04(日) 18:55:47○ let-keywords =>get-keyword
0735722
2008/05/04(日) 19:04:32ありがとうございます。
でも何故let-keywordsを使用すると動かないんだろ・・・
0736デフォルトの名無しさん
2008/05/04(日) 20:09:31どんなエラーが出るのか書いてもらわないと。
ちなみに手元のGauche 0.8.13では>>722が問題なく動作した。
0737デフォルトの名無しさん
2008/05/04(日) 20:35:38こんなエラーです。
環境はubuntuのemacs23上で走らせてます。
(define person (lambda args
(let-keywords args ((name "Anonymous")
(age "unknown"))
(print name " is " age " years old."))))
(person :name "hogehoge" :age 99)
gosh> *** ERROR: unbound variable: age
Stack Trace:
_______________________________________
0 (age "unknown")
At line 106 of "(stdin)"
1 (name "Anonymous")
At line 105 of "(stdin)"
0738デフォルトの名無しさん
2008/05/04(日) 20:51:440739デフォルトの名無しさん
2008/05/04(日) 21:13:090740デフォルトの名無しさん
2008/05/04(日) 21:32:210741デフォルトの名無しさん
2008/05/04(日) 21:54:050742デフォルトの名無しさん
2008/05/04(日) 22:01:36Gaucheのどのバージョンか判らないと質問にも答えられない。
0743デフォルトの名無しさん
2008/05/04(日) 22:50:400744デフォルトの名無しさん
2008/05/04(日) 22:51:31(gauche-version)
0745デフォルトの名無しさん
2008/05/04(日) 22:52:180746デフォルトの名無しさん
2008/05/04(日) 22:55:03回答者のエスパー能力を試してるんだよ。
的確な答えをすると組織へ入れる(入れられる)らしい。
0747デフォルトの名無しさん
2008/05/04(日) 23:03:440748デフォルトの名無しさん
2008/05/04(日) 23:25:18同じ症状の人多数。
ttp://d.hatena.ne.jp/MIZUNO/20080323/1206260194
0.8.12以上なら動くからバージョンアップ推奨。
0749デフォルトの名無しさん
2008/05/04(日) 23:40:32団員バッジがかっこよければ俺も入るよ!
0750デフォルトの名無しさん
2008/05/04(日) 23:48:19スコープ鶴崎とかいるかもしれんのにか?
0751デフォルトの名無しさん
2008/05/04(日) 23:52:490752デフォルトの名無しさん
2008/05/05(月) 03:47:30そうなんだよ。
だから俺は何時までたっても自分で解決できないままなんだな。
0753デフォルトの名無しさん
2008/05/05(月) 04:17:350754デフォルトの名無しさん
2008/05/05(月) 04:30:460755デフォルトの名無しさん
2008/05/05(月) 05:26:12exampleのブラウザでの実行方法すらわかりません。
よろしくお願いします
0756デフォルトの名無しさん
2008/05/05(月) 08:07:24わかりにくくて申し訳ない。
exampleの下のプログラムの解説は以下の通りです。実行する前にカレントディレクトリを
exampleディレクトリに移しておいてください。
あと、プログラム実行後、ttp://localhost:8080/ にアクセスするとブラウザ上に画面が
表示されます。
grad.scm - グラデーションパターンを描くプログラム
% gosh grad.scm
raytrace.scm - レイトレースで球体を描くプログラム
% gosh raytrace.scm
Paul GrahamのANSI Common Lispにある例題をGaucheに移植したものです
(ついでに色もつけている)
lifegame.scm - ライフゲームを実行するプログラム
% gosh lifegame.scm
bb-eval.scm - 黒板に書いたS式を実行するプログラム
% gosh -I. bb-eval.scm
黒板上でマウスの左ボタンを押しながらドラッグすると線が引けるので、それで文字を書いていってください。終わったら下の"Eval"ボタンを押すと結果が画面に表示されます。ただし、認識できる文字は数字と括弧()と一部の演算子(+と*)だけです。
ドキュメントはmakeすると、docディレクトリの下にinfo形式のドキュメントが生成
されます。
texi2htmlをもっているなら、make htmlで HTML形式のドキュメントが生成できます。
ただし、内容がないのであんまり参考にならないかも。
0757デフォルトの名無しさん
2008/05/05(月) 20:54:180758デフォルトの名無しさん
2008/05/05(月) 22:18:50(foo m n)は[m, n]の区間の整数のリストを返します
なんか改善するべきところあったら教えてください
(define (foo from to)
(let ((f (if (< from to)
- +)))
(define (foo2 n r)
(if (= n from)
(cons from r)
(foo2 (f n 1) (cons n r))))
(foo2 to ())))
0759デフォルトの名無しさん
2008/05/05(月) 22:42:430760デフォルトの名無しさん
2008/05/05(月) 22:51:41もうすこし改善の優先順位を決めるとレスし易いかも。全く条件がないと好みの問題で済んでしまう希ガス。
0761デフォルトの名無しさん
2008/05/05(月) 23:03:36ありがとうございます
すばらしい拡張ライブラリですね
0762デフォルトの名無しさん
2008/05/05(月) 23:04:110763デフォルトの名無しさん
2008/05/05(月) 23:29:44なるほど、named letってのがあるんですか
しかし素直にfもこのform内で束縛してしまおうとすれば余分な引数(fはfoo内で変化しない)が増えて
foo2の呼び出しが3引数になってしまうのが嫌ですね
かといって以下のコードのようにletを入れ子にするのもダサいですし
(define (foo from to)
(let ((f (if (< from to)
- +)))
(let foo2 ((n to)
(r ()))
(if (= n from)
(cons from r)
(foo2 (f n 1) (cons n r))))))
>>760
処理系はgaucheで、見易さ優先でおながいします
この例だと末尾再帰の最適化さえあれば速度に大差はでない気がするので
0764デフォルトの名無しさん
2008/05/05(月) 23:31:30(use srfi-1)
(define (foo from to)(iota(+(abs(- to from))1)from))
0765デフォルトの名無しさん
2008/05/05(月) 23:39:59(loop for n from 0 to 10 collect n)
0766764
2008/05/05(月) 23:41:34この方が簡単かな。
(use srfi-1)
(define (foo from to)
(unfold (pa$ < to) values (pa$ + 1) from))
0767デフォルトの名無しさん
2008/05/05(月) 23:44:40(require (lib "1.ss" "srfi"))
(define (foo from to)(iota(+(abs(- to from))1)from))
(define display-line
(lambda (x)
(display x) (newline)))
(display-line (foo 1 10))
⇒ (1 2 3 4 5 6 7 8 9 10)
0768デフォルトの名無しさん
2008/05/05(月) 23:46:59>>394みたいのじゃだめなのか?
0769デフォルトの名無しさん
2008/05/05(月) 23:49:38そのps$はDrSchemeでは駄目。Gauche依存。
0770766
2008/05/05(月) 23:52:53いや、>>763で「gaucheで見易さ優先」って書いてあるからあえてgaucheの簡便な記法を使ってみた。
見易いよね?cutでも大差ないかな。
0771デフォルトの名無しさん
2008/05/06(火) 00:02:58Gauche使いには見易いけど、初学者ポイから処理系依存の説明よりは素直にcut使った方がいいかも。
まあ、ゴチャゴチャするけど、処理系を気にせずどこででも勉強できるように誘導する方が教育的かと。
0772デフォルトの名無しさん
2008/05/06(火) 00:06:220773デフォルトの名無しさん
2008/05/06(火) 00:08:00じゃあどこでも勉強できるようにpa$の定義を書いておきま。
(define-syntax pa$ (syntax-rules () ((_ f arg ...)(cut f arg ... <>))))
0774デフォルトの名無しさん
2008/05/06(火) 00:08:07from < to の場合の挙動が違う気がする。
0775763
2008/05/06(火) 00:19:36とりあえず(foo 3 1) ; => (3 2 1)
のような事もシンプルにできる、かつ処理系依存が少ないのを考えるとiotaを使って
(define (foo from to)
(iota (+ (abs (- to from)) 1)
from
(if (< from to) 1 -1)))
こんな感じになりました
emacs lispなら使えるんでloopマクロに近いsrfi-42のrange qualifierとか試してみましたが余計ややこしくなりそうでした
foldとか部分適用は一瞬脳がパンクしそうになりました
0776デフォルトの名無しさん
2008/05/06(火) 00:22:36; >>774の件は考慮してない
(require (lib "1.ss" "srfi"))
(require (lib "26.ss" "srfi"))
(define-syntax pa$
(syntax-rules ()
((_ f arg ...) (cut f arg ... <>))))
(define (foo from to)
(unfold (pa$ < to) values (pa$ + 1) from))
(define display-line
(lambda (x)
(display x) (newline)))
(display-line (foo 1 10))
⇒ (1 2 3 4 5 6 7 8 9 10)
0777デフォルトの名無しさん
2008/05/06(火) 00:44:59; from toの順番になってて覚え易いかも
(require (lib "1.ss" "srfi"))
(require (lib "26.ss" "srfi"))
(define (foo from to)
(unfold-right (cut > from <>) values (lambda (x) (- x 1)) to))
(define display-line
(lambda (x)
(display x) (newline)))
(display-line (foo 1 10))
0778デフォルトの名無しさん
2008/05/06(火) 00:48:47(require (lib "1.ss" "srfi"))
(require (lib "26.ss" "srfi"))
(define (foo from to)
(unfold (cut < to <>) values (lambda (x) (+ x 1)) from))
(define display-line
(lambda (x)
(display x) (newline)))
(display-line (foo 1 10))
0779デフォルトの名無しさん
2008/05/06(火) 01:06:19もうその話題は終わったんだよ。
0780デフォルトの名無しさん
2008/05/06(火) 01:06:55(require (lib "1.ss" "srfi"))
(require (lib "26.ss" "srfi"))
(define (foo from to)
(unfold (cut < to <>) values (cut + 1 <>) from))
(define display-line
(lambda (x)
(display x) (newline)))
(display-line (foo 1 10))
0781デフォルトの名無しさん
2008/05/06(火) 01:08:10あら
0782デフォルトの名無しさん
2008/05/06(火) 01:09:340783デフォルトの名無しさん
2008/05/06(火) 01:10:19って気はするな。
0784デフォルトの名無しさん
2008/05/06(火) 01:17:51cut用のsrfi-26もいらない。unfold-rightを使った逆順も書ける。
(require (lib "1.ss" "srfi"))
(define (foo from to)
(unfold (lambda (x) (< to x)) values (lambda (x) (+ x 1)) from))
(define display-line
(lambda (x)
(display x) (newline)))
(display-line (foo 1 10))
0785デフォルトの名無しさん
2008/05/06(火) 01:19:310786デフォルトの名無しさん
2008/05/06(火) 01:26:580787デフォルトの名無しさん
2008/05/06(火) 01:30:32ライブラリ要らずと言う点ではlambda最強?
0788デフォルトの名無しさん
2008/05/06(火) 01:33:33iotaもunfoldもsfri-1が必要だろ。
0789デフォルトの名無しさん
2008/05/06(火) 01:38:370790デフォルトの名無しさん
2008/05/06(火) 01:53:170791デフォルトの名無しさん
2008/05/06(火) 02:03:39繰り返し処理が…
a)組み込み関数を使う => おそらく最速
b)ループで実装 => 結構速い
c)named-letなど末尾再帰呼び出しで実装 => まあまあ速い
d)再帰呼び出しで実装 => 使わない方が良い
0792デフォルトの名無しさん
2008/05/06(火) 05:51:42繰り返し(iteration)を再帰(recursion)で実装とか、
なんか用語的におかしくね?
0793デフォルトの名無しさん
2008/05/06(火) 06:29:04目的は繰り返し
0794デフォルトの名無しさん
2008/05/06(火) 06:35:47目的は反復処理
0795デフォルトの名無しさん
2008/05/06(火) 07:34:55それはただの言葉遊び
0796デフォルトの名無しさん
2008/05/06(火) 09:16:588.04にしたのかな
0797デフォルトの名無しさん
2008/05/06(火) 14:19:35プログラム技術板なんだしテクニカルタームは正しく使おうぜ
0798デフォルトの名無しさん
2008/05/06(火) 14:56:400799デフォルトの名無しさん
2008/05/06(火) 15:22:250800デフォルトの名無しさん
2008/05/06(火) 15:55:22http://karimofu.nu/dlp/mofu6_0925.zip.php (ダウンロードパスはgauche)
かなり強引で怪しげなシロモノだけど…。
0801(define (´∀`) 'マターリ)
2008/05/07(水) 01:57:35(map (lambda (x) ((if (> m n) - +) m x))
(let loop ((n (abs (- n m))) (r '()))
(if (zero? n) (cons 0 r)
(loop (- n 1) (cons n r))))))
0802デフォルトの名無しさん
2008/05/07(水) 18:13:48Indexズレ�рxO!
0803デフォルトの名無しさん
2008/05/07(水) 18:15:150804デフォルトの名無しさん
2008/05/07(水) 19:15:33汎関数と何が違うんでせうか
なんだか名前空間の管理ポリシーの違いで
オブジェクト指向とかアスペクト指向とか
いってるだけな気がするんですが…
0805デフォルトの名無しさん
2008/05/07(水) 19:17:410806デフォルトの名無しさん
2008/05/07(水) 19:41:570807デフォルトの名無しさん
2008/05/07(水) 21:13:36乙
0808デフォルトの名無しさん
2008/05/07(水) 21:30:04もし差し支えなかったらBoehm-GCをpthreadに対応させた方法を教えて頂けませんか?
OS依存部のLinux以外へのポートの戦略あたりをできれば
0809デフォルトの名無しさん
2008/05/07(水) 22:09:22configure.ac の160行目付近に
*-*-mingw*)
AC_DEFINE(GC_WIN32_THREADS)
AC_DEFINE(THREAD_LOCAL_ALLOC)
win32_threads=true
;;
要するに基本的に cygwin と同じになるように。
それから
configure --enable-threads=pthreads
make
あと細かいところは引っかかる都度に手直ししただけ。
本当に大丈夫なのかどうか全然わからん。
それからwindows版の pthread において pthread_t は構造体なので
gauche の vm.c の中で比較してる部分を THREAD_EQUAL マクロにおきかえ。
make とかはいろいろいじったけど。
以上は細かい手直しだけでいけると思うんだけど、重要な違いがひとつ。
Windows版の pthread は pthread_sigmask が実装されてない。
で、どうしたかというと… コメントアウトしますた (´・ω・`)
実装されてないものは本格的になんとかしようとするとちょっとした手直しでは済まないと思う。
windowsのAPIを直接使うよりは簡単に移植できるんじゃないかと期待するけど、
さっぱわからんので、「大まかにはWindowsでもpthreadが使えるかも」という実験的意味合いと思ってちょ。
0810デフォルトの名無しさん
2008/05/07(水) 22:45:01(define foo
(lambda (m n)
(letrec
((r '())
(loop (lambda(x)
(if (>= x m)
(begin (set! r (cons x r))
(loop (- x 1)))))))
(loop n)
r)
))
0811デフォルトの名無しさん
2008/05/07(水) 23:35:19てかちゃんと書け
0812デフォルトの名無しさん
2008/05/08(木) 13:40:03古いOOPではクラス定義にコードが分散してしまうようなプログラミング対象、
例えば、スレッド処理、例外処理、ロギング、トランザクション管理、を、"aspect"と呼んで、
オブジェクトと"weaving"することでプログラムを構成しようという方法論がAOP。
"Aspect"を、OOモデリングと直行させて整理しようという考え。
CLOSな人達にとっては、特に新しいことではないけれど、
概念を整理し直し、設計の指針を示すのは良いことだと思う。
それに従おうと従うまいと、一つのパースペクティブが持てるので。
0813804
2008/05/08(木) 14:12:33やっぱそうなんすか…
>806
wikipediaでアクターモデル斜め読みしてみたんですが
CSPをもうちょい具体的にしたようなもんですか?
0814804
2008/05/08(木) 14:13:50丁寧な解説ありがとうございます
なんとなくわかったような気がします
0815デフォルトの名無しさん
2008/05/08(木) 17:51:30http://sourceforge.net/project/showfiles.php?group_id=25227
> Gauchebox 0.8.13-box1 May 8, 2008
> Gauche-mingw 0.8.13-mingw1 May 8, 2008
0816デフォルトの名無しさん
2008/05/08(木) 17:51:48ActorってOOPのもとになったモデルと思ってましたが、Aspectってのもあるんですか。
0817デフォルトの名無しさん
2008/05/08(木) 17:54:10違います
0818デフォルトの名無しさん
2008/05/08(木) 18:36:27アクターモデルとは、並行計算の数学的モデルの一種で、並行デジタル計算の汎用的基本要素として「アクター」を扱っている。
0819デフォルトの名無しさん
2008/05/08(木) 18:39:02しかし、オブジェクト指向ソフトウェアでは基本的に逐次的に実行するのに対して、アクターモデルでは本質的に並行性を備えている点が異なる。
0820デフォルトの名無しさん
2008/05/08(木) 18:48:550821デフォルトの名無しさん
2008/05/08(木) 20:30:030822デフォルトの名無しさん
2008/05/08(木) 21:01:360823デフォルトの名無しさん
2008/05/08(木) 21:02:53同じく。 Hewittのペーパーを少し読めば。
0824デフォルトの名無しさん
2008/05/08(木) 22:35:54↓
Smalltalk-71:Alan Kay
↓
Actor Model:ヒューイットの1973年の論文
0825デフォルトの名無しさん
2008/05/08(木) 22:42:50⇒⇒leanTAP⇒KANREN⇒miniKANREN⇒alphaKANREN ⇒
⇒⇒concurentKANREN (on concurrent Scheme/Arc)
0826デフォルトの名無しさん
2008/05/08(木) 22:44:310827デフォルトの名無しさん
2008/05/08(木) 22:46:170828デフォルトの名無しさん
2008/05/08(木) 22:48:510829デフォルトの名無しさん
2008/05/09(金) 00:07:18/ `''.v'ν Σ´ `、_,.-'""`´""ヽ
i' / ̄""''--i 7 | ,.イi,i,i,、 、,、 Σ ヽ
. !ヘ /‐- 、u. |' |ノ-、 ' ` `,_` | /i'i^iヘ、 ,、、 |
|'' !゙ i.oニ'ー'〈ュニ! iiヽ~oj.`'<_o.7 !'.__ ' ' ``_,,....、 .|
. ,`| u ..ゝ! ‖ .j (} 'o〉 `''o'ヽ |',`i
_,,..-<:::::\ (二> / ! _`-っ / | 7  ̄ u |i'/
. |、 \:::::\ '' / \ '' /〃.ヽ `''⊃ , 'v>、
!、\ \. , ̄ γ/| ̄ 〃 \二-‐' //
ゴクリ…
0830デフォルトの名無しさん
2008/05/09(金) 00:23:22プログラミング(彼はこれをOOと呼んだ)を思いつく前のものなのでOOとは無関係です。
メッセージングを意識して作られたのは Smalltalk-72 からです。これを見てインスパイア
されたヒューイットがあみ出したのがアクター理論で、PLANNER 上で実践されました。
以上は 1972-3 年の出来事ですが、アスペクト指向はもっとずっと後で生じた考え方です。
0831デフォルトの名無しさん
2008/05/09(金) 01:14:3977年の論文はデイナ・スコットの連続関数に表示的意味論の基盤を与えたので、ここから理論と呼べるだろうということでアクター理論と呼ぶ。
でも77年の論文には間違いがあったので、81年にWill Clingerによって修正され、アクター理論が完成した。
アスペクト指向(aspect-oriented programming:AOP)は Xerox PARC の Gregor Kiczales のチームが
Kiczales, Gregor; John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Lopes, Jean-Marc Loingtier, and John Irwin (1997).
"Aspect-Oriented Programming", Proceedings of the European Conference on Object-Oriented Programming, vol.1241, pp.220--242.
で発表してからだから20年程たってから出てきた理論。
0832デフォルトの名無しさん
2008/05/09(金) 01:31:41>プログラミング(彼はこれをOOと呼んだ)を思いつく前のものなのでOOとは無関係です。
>
>メッセージングを意識して作られたのは Smalltalk-72 からです。これを見てインスパイア
>されたヒューイットがあみ出したのがアクター理論で、PLANNER 上で実践されました。
http://en.wikipedia.org/wiki/Actor_model
Alan Kay was influenced by message passing in the pattern-directed invocation of Planner in developing Smalltalk-71.
Hewitt was intrigued by Smalltalk-71 but was put off by the complexity of communication that included invocations with
many fields including global, sender, receiver, reply-style, status, reply, operator selector, etc.
ヒューイットはSmalltalk-72 を見てインスパイアされたとは73年の論文(p.244の前後)にも書いてないですね。よろしかったら原典教えてください。
http://dli.iiit.ac.in/ijcai/IJCAI-73/PDF/027B.pdf
0833デフォルトの名無しさん
2008/05/09(金) 02:35:480834デフォルトの名無しさん
2008/05/09(金) 02:39:480835デフォルトの名無しさん
2008/05/09(金) 03:43:12(iota count start step)の
countが0だったり
countがマイナス値だったり
stepが0だったり
した場合どうなるの?
0836デフォルトの名無しさん
2008/05/09(金) 04:44:28じゃゴミなんだ?
0837デフォルトの名無しさん
2008/05/09(金) 07:21:41仕様を見る限り、未定義ってことじゃないかなあ。
(iota 0)は () になるのが自然だと思うけど。
0838デフォルトの名無しさん
2008/05/09(金) 08:39:25>>830の原典が何かは知らないがThe Early History of SmalltalkでAlan Kayはこう述べてるね
In November, I presented these ideas and a demonstration of the interpretation scheme to
the MIT AI lab. This eventuall led to Carl Hewitt's more formal "Actor" approach [Hewitt 73].
<http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html>
上のはtypoが結構あるので実物を確かめたい場合はこっちのpdfで
; pdfっていっても実際は画像だけど
<http://www.metaobject.com/papers/Smallhistory.pdf>
0839デフォルトの名無しさん
2008/05/09(金) 14:33:19AOPは理論じゃないです。
一応レスしときます。
0840デフォルトの名無しさん
2008/05/09(金) 14:39:14> しかし、オブジェクト指向ソフトウェアでは基本的に逐次的に実行するのに対して、
それはおかしい。
0841デフォルトの名無しさん
2008/05/09(金) 15:12:420842デフォルトの名無しさん
2008/05/09(金) 15:18:470843デフォルトの名無しさん
2008/05/09(金) 17:22:450844デフォルトの名無しさん
2008/05/09(金) 18:18:310845デフォルトの名無しさん
2008/05/09(金) 18:24:060846デフォルトの名無しさん
2008/05/09(金) 18:26:08理論じゃないなら手法とでもしときますか?
0847デフォルトの名無しさん
2008/05/09(金) 21:30:13で思い出したけれど、μPlannerやConniverって、処理系が
何処かにある?
0848808
2008/05/09(金) 21:57:10ありがとうございます。
レス遅くなって申し訳ありません。
Boehm-GCはcygwinに対応してるのですね。
cygwinはBoehm-GCの守備範囲外だとおもってました。
OpenBSDにポートする時の参考にしようと思ったのですが
あまりなりそうにないですね。
せっかく答えていただいたのにすみません。
0849デフォルトの名無しさん
2008/05/09(金) 22:01:52by
Gerald Jay Sussman and Terry Winograd
(1970)
ttp://dspace.mit.edu/bitstream/1721.1/5833/2/AIM-203.pdf
0850デフォルトの名無しさん
2008/05/09(金) 22:09:45by
Drew V. McDermott and Gerald Jay Sussman
(1972)
ttp://dspace.mit.edu/bitstream/1721.1/6204/2/AIM-259a.pdf
0851デフォルトの名無しさん
2008/05/09(金) 22:27:28論理的アプローチ派の Robert Kowalski は Alain Colmerauer と共同で Micro-Planner によく似た Prolog を開発した。
不幸なことにMicro-Plannerはバックトラッキングの扱いにくさを証明するが、制御構造に関する議論を活性化した。
このころ、Peter Landin は J (Jump) 演算子を使って非常に強力な制御構造を導入した。
Drew McDermott と Gerald Sussman は、Landin のコンセプトを 「Hairy Control Structure」と呼びさらに発展させ、Conniver 言語に実装した。
0852デフォルトの名無しさん
2008/05/09(金) 22:36:08Schemeの名前は、Conniverよりもっとスニーキー(卑劣)なPlannerという意味のSchemerとなるはずだった。
ところが、ファイル名の制限 (6文字+3文字)でSCHEMEになってしまった。
Planner -> Conniver -> Schemer。
これを知っているとLittle SchemerシリーズがSchemeと呼んでいない理由もうなずける。
0853デフォルトの名無しさん
2008/05/09(金) 22:48:460854デフォルトの名無しさん
2008/05/09(金) 22:53:16みつからんね。
0855デフォルトの名無しさん
2008/05/09(金) 23:29:31An Interpreter for Extended Lambda Calculus
by
Gerald Jay Sussman and Guy Lewis Steele Jr.
(1975)
http://dspace.mit.edu/bitstream/1721.1/5794/2/AIM-349.pdf
0856デフォルトの名無しさん
2008/05/09(金) 23:40:19Schemeの場合、p.41にも書いてあるけどHewittのPLASMA(1975)の影響が大きい。
0857デフォルトの名無しさん
2008/05/10(土) 00:22:52A Language for Proving Theorems
by
Carl Hewitt
(1967)
ttp://dspace.mit.edu/bitstream/1721.1/6144/2/AIM-137.pdf
0858デフォルトの名無しさん
2008/05/10(土) 00:29:08ttp://practical-scheme.net/gauche/man/gauche-refj_127.html#SEC377
"このモジュールは、フィルター型のコマンド、すなわち入力を読み込み、処理をして結果を書き出すような場合に共通するパターンに使えるユーティリティ手続きを提供します。"
なんだ、こんなのあるんだ。
0859デフォルトの名無しさん
2008/05/10(土) 00:47:11普通はapplyを使うわけですが、
ドットリストを使えば普通に使えるじゃんと
思ってしまってGaucheで試してみたんですが…
(+ . (1 2 3)) ; => 6
(define lst '(1 2 3)) ; => #t
(+ . lst)
=> *** ERROR: improper list can't be evaluated: (+ . lst)
以下のような簡約過程をイメージしていたのですが思うようにはいきませんでした。
(+ . lst)
-> (+ . (1 . (2 . (3 . ()))))
-> (+ 1 2 3)
-> 6
なぜこのようなケースがエラーになるのでしょうか?
0860デフォルトの名無しさん
2008/05/10(土) 00:59:39リストの cdr は評価される場所じゃないから
0861デフォルトの名無しさん
2008/05/10(土) 02:26:41A. (define lst '(1 2 3)) ; => #t -> 変数のlst
B. (+ . lst) -> 値のlst
両方のlstは同じではないよ。
gosh> (eval (cons '+ lst) (scheme-report-environment 5))
=> 6
(cons '+ lst) -> '(+ . (1 2 3)) -> '(+ 1 2 3)
さいごのえばってるの。
0862デフォルトの名無しさん
2008/05/10(土) 03:12:41lisping
【名】サ行発音不全(症)
gosh
【間投】おやっ!、えっ!
God の遠回しな言い方。驚き・不快感などを表す。
・Oh, my gosh. まあ、大変。/参ったなあ。
0863デフォルトの名無しさん
2008/05/10(土) 07:21:34そのアイディア、つまり (op arg1 arg2 . args) という形式を
(apply op arg1 arg2 args) と解釈したらどうか、という話は
繰り返し浮上するのだが、argsが単なる変数でない式だった場合に
破綻する。S式の定義から、(op arg1 arg2 . (op2 argx)) は
(op arg1 arg2 op2 argx) と区別できない。
argsが変数の場合だけ特別扱いするというのは何か気持ち悪い。
0864デフォルトの名無しさん
2008/05/10(土) 09:45:43変数の時だけではなく評価前のS式が dotted list のときだけ apply と看做す
のはだめなのかな。 scheme だと (define (a b . c) ...) とか書けるし。
0865デフォルトの名無しさん
2008/05/10(土) 09:55:10だからその「ときだけ」ってのが気色悪いって言ってんの。
0866デフォルトの名無しさん
2008/05/10(土) 10:20:43マクロ書くときにバグの原因になりそう
0867デフォルトの名無しさん
2008/05/10(土) 12:00:30gaucheは「ぎこちない、気のきかない、不器用な」
◎Extra Example
“I’m so gauche. I’ll never be a good cellist.”
“Don’t say that, Mr. Swallow. Just keep practicing.”
「ぼくはとても不器用です。決してチェロをうまく弾けるようにはならないでしょう」
「そんなこと言わないでください、スワローさん。練習あるのみです」
http://getupenglish.blog.ocn.ne.jp/getupenglish/2008/03/chic_gauche_78a1.html
0868デフォルトの名無しさん
2008/05/10(土) 13:24:10ttp://karetta.jp/book-node/gauche-hacks/008237
;; Guile についても調べてみたけど辞書的な意味しか分からなかった
guile【名】
悪巧み、策略{さくりゃく}、ずるさ、陰険{いんけん}さ、狡猾{こうかつ}さ
http://eow.alc.co.jp/guile/
0869デフォルトの名無しさん
2008/05/10(土) 13:31:440870デフォルトの名無しさん
2008/05/10(土) 13:36:29ttp://ja.wikipedia.org/wiki/%E3%82%B4%E3%83%BC%E3%82%B7%E3%83%A5%E5%9E%8B
0871デフォルトの名無しさん
2008/05/10(土) 21:16:29・letrecとinternal defineのどちらを使いますか?
・定義部のみbeginで囲みますか?本体部のみbeginで囲みますか?beginを書きませんか?
・beginをそのまま使いますか?マクロでラップしていますか?
自分は内部関数定義部と本体部でインデントが違って欲しいので
internal defineをbeginに展開されるマクロwhereで囲って書いています。
でも逐次式としてのbeginはまだ意味が分かるんですけど
定義部のbeginは意味が分からない…
内部定義は未規定の順番で行われる訳ですし。
なぜ定義にもbeginが使えるのでしょうか?
なぜsyntax-rulesでもCLマクロでも記述できないのに派生式扱いなのでしょうか?
どんな歴史的経緯からSchemeに導入されたのでしょうか?
0872デフォルトの名無しさん
2008/05/10(土) 23:49:11俺は SICP をちょこちょこやってるレベルなんだけど。let 以外のことをやり
たいときは大体 define 使う。
0873デフォルトの名無しさん
2008/05/11(日) 00:04:30・internal defineを使います。
・beginを書きません。
・beginがどうしても必要ならそのまま使います。
>なぜ定義にもbeginが使えるのでしょうか?
beginが使えないと、複数の定義の集まりに展開されるマクロが書けないのでは?
>なぜsyntax-rulesでもCLマクロでも記述できないのに派生式扱いなのでしょうか?
定義として使われるbeginとマクロのbeginは別物だと思います。
前者はelseやunquoteに近いものではないかと。
0874デフォルトの名無しさん
2008/05/11(日) 00:52:40単なる逐次式のbeginならsyntax-rulesでもCLマクロでも派生式として書けますから
定義をまとめる式を原始式としてwhereなりdeclareなり別に用意したほうが良さそうなのに
あえて同じ構文キーワードになっているのには
何か歴史的な経緯があるのではないか?と思ったのです。
0875デフォルトの名無しさん
2008/05/11(日) 08:12:310876デフォルトの名無しさん
2008/05/11(日) 11:03:12現在のパソコン上のLispは当時のLispマシンと比較して
どのくらいの性能なのでしょう?
0877デフォルトの名無しさん
2008/05/11(日) 11:29:47使った事はありますという程度ですが。
フロントに汎用機やミニコン(死語?)をおいたマシンでしたね。
『どのくらいの性能』って、何の値が希望?
0878876
2008/05/11(日) 11:58:49おお、使ってらっしゃったのですね。
consできるセルの数は?
竹内関数の実行スピードは?
といったことです。
listやmapが機械語で操れるマシンに憧れます。
富士通はまた作らないのかなぁ。
0879デフォルトの名無しさん
2008/05/11(日) 13:24:39αは使ったことないけど、
> 現在のパソコン上のLispは当時のLispマシンと比較して
> どのくらいの性能なのでしょう?
どの面から見ても桁違いに高い性能なのは間違いない。
その割にたいしたことが出来てないのでがっかりしている。(自分に対して)
0880デフォルトの名無しさん
2008/05/11(日) 14:06:44> listやmapが機械語で操れるマシンに憧れます。
FACOM αってのは使ったことないが、list くらいなら今でも機械語で操れる
つか, JAVA の VM を直接実行してるようなイメージなんだが > Lisp マシン
# この辺、見てみれば? http://spa.jssst.or.jp/1998/020_yamazaki.html
0881デフォルトの名無しさん
2008/05/11(日) 14:20:22(リンク先のはそういうのだよね)
0882デフォルトの名無しさん
2008/05/11(日) 14:29:14そなの? アルファって map までバイトコード定義だったの?
# map やってる間に割り込めるんだったら CPU 作った奴の英断に敬意を表するぞ!
0883デフォルトの名無しさん
2008/05/11(日) 17:26:43そういえば大先生が作ったTAOのcpuはELISって言うんだなぁ。
ELISと言えば中尉か6800のイメージしか無いなぁ。
Lispmachineの方はどんなんだったんだろ?
(なんかの展示会で実マシン見たこと一回だけある程度、その後MAC用にNUBUSのカードが出てたけど買えなかった)
0884デフォルトの名無しさん
2008/05/11(日) 17:43:40> # map やってる間に割り込めるんだったら CPU 作った奴の英断に敬意を表するぞ!
mapの途中で割り込みはさすがに豪快だが、CISCでストリング命令とか、
中間状態をレジスタの値として保存して再開可能な作りにしてある石は
あったように思う。使ったという記憶じゃないのでうろおぼえだが。
0885デフォルトの名無しさん
2008/05/11(日) 20:20:36(let* ((yin ((lambda (foo) (newline) foo)
(call/cc (lambda (bar) bar))))
(yang ((lambda (foo) (write-char #\*) foo)
(call/cc (lambda (bar) bar)))))
(yin yang))
正解はこちら。おもしろいね。
ttp://practical-scheme.net/wiliki/wiliki.cgi?Scheme%3Acall%2Fcc%E3%83%91%E3%82%BA%E3%83%AB
ttp://groups.google.com/group/comp.lang.scheme/browse_frm/thread/a5479dbeb298639c?dq=&hl=ja&lr=&ie=UTF-8&prev=/groups%3Fhl%3Dja%26group%3Dcomp.lang.scheme
0886デフォルトの名無しさん
2008/05/11(日) 21:16:13(lambda (goto)
(letrec ((start
(lambda ()
(print "start")
(goto next)))
(froz
(lambda ()
(print "froz")
(goto last)))
(next
(lambda ()
(print "next")
(goto froz)))
(last
(lambda ()
(print "last")
(+ 3 4))))
start))))
0887デフォルトの名無しさん
2008/05/11(日) 21:25:470888デフォルトの名無しさん
2008/05/12(月) 13:00:28Common Lispだと、
> (setq x '(1 2 3))
> (eval `(+ ,@x))
ということをしたいってことになりますが。
0889デフォルトの名無しさん
2008/05/12(月) 13:13:02>その割にたいしたことが出来てないのでがっかりしている。(自分に対して)
同じく。憧れだったスーパーマシン以上のものが今では
パソコン上で実現されてるんだけど、自分は使いこなせていない。
竹内先生の本で本物のLispに憧れていた頃の方が燃えていたかも
しれない。
0890デフォルトの名無しさん
2008/05/12(月) 13:14:57ならば、リファクタリングツールの充実してる言語でも同じようなことできそう
0891デフォルトの名無しさん
2008/05/12(月) 13:20:52そして何故かread時にcdr部がevalれることを期待している。
0892デフォルトの名無しさん
2008/05/12(月) 22:12:40こういうを式を
(eval '(+ . (1 2 3)))
こうする
(+ . '(1 2 3))
ドットをシンボルとして評価することになるのでダメ。
ドットはシンボルではない?
ドットをドットのまま評価させようとして
(+ '. '(1 2 3))
ドットに、直接 '. してもドットリストは作れない
0893デフォルトの名無しさん
2008/05/12(月) 23:02:35……じゃないよな
0894デフォルトの名無しさん
2008/05/12(月) 23:06:260895デフォルトの名無しさん
2008/05/12(月) 23:24:410896デフォルトの名無しさん
2008/05/12(月) 23:58:14んなわけないだろ
0897デフォルトの名無しさん
2008/05/13(火) 00:49:19これは酷い
0898デフォルトの名無しさん
2008/05/13(火) 02:00:17そもそもデータではない。'(' と同じようなもの。
0899デフォルトの名無しさん
2008/05/13(火) 05:39:010900デフォルトの名無しさん
2008/05/13(火) 21:13:02(1 2 3)
>
へ〜、そうなんだ。
0901デフォルトの名無しさん
2008/05/13(火) 23:05:140902デフォルトの名無しさん
2008/05/14(水) 21:17:14ttp://slashdot.jp/developers/08/05/14/0248258.shtml
0903デフォルトの名無しさん
2008/05/14(水) 21:18:470904デフォルトの名無しさん
2008/05/14(水) 21:30:18Contents of the Decrement part of Register number
0905デフォルトの名無しさん
2008/05/15(木) 00:39:32略語のフルスペルを示されてもなぜCARとCDRなのかは分からんだろ?
元となるコンピュータのレジスタ構成を知らないと何のこっちゃ?になる。
0906デフォルトの名無しさん
2008/05/15(木) 00:56:260907デフォルトの名無しさん
2008/05/15(木) 03:08:01Mosh User's Reference
ttp://mosh.monaos.org/top.html
0908デフォルトの名無しさん
2008/05/15(木) 08:58:12ってなんじゃそら
0909デフォルトの名無しさん
2008/05/15(木) 08:58:570910デフォルトの名無しさん
2008/05/15(木) 10:20:260911デフォルトの名無しさん
2008/05/15(木) 11:19:55version 0.0.2だもの、セルフはまだ無理だろ。
0912デフォルトの名無しさん
2008/05/15(木) 11:33:040913デフォルトの名無しさん
2008/05/15(木) 12:01:470914デフォルトの名無しさん
2008/05/15(木) 12:23:550915デフォルトの名無しさん
2008/05/15(木) 13:11:550916デフォルトの名無しさん
2008/05/15(木) 13:51:150917デフォルトの名無しさん
2008/05/15(木) 13:52:15exec()する機能がないんだが…
0918デフォルトの名無しさん
2008/05/15(木) 17:26:11OS作者から処理系作者にシフトしつつある。
Matzみたいなポジを狙ってる模様。
0919デフォルトの名無しさん
2008/05/15(木) 20:13:21そういや昔SOSってOSあったなあ。
0920デフォルトの名無しさん
2008/05/15(木) 20:22:180921デフォルトの名無しさん
2008/05/15(木) 20:27:58S-OS SWORDとかってやつかな?
俺はS-OS上のLispで遊んでたりしたなw
0922デフォルトの名無しさん
2008/05/15(木) 21:36:370923デフォルトの名無しさん
2008/05/15(木) 22:10:54Lisp-85にPOKEやPEEK付け加えたりしてたなw
0924デフォルトの名無しさん
2008/05/15(木) 22:52:38FLEX上のLisp09をアセンブラから入力してた。
後で商品版のLisp09を買ったんだけど当時6万円はしたなぁ。
OS-9にしておきゃよかった。日立のS1で動くLisp09のことを
知って後悔したよ。
0925デフォルトの名無しさん
2008/05/15(木) 23:08:40入力ってか配線だったから大変だったなぁ。
場所も取るし。
0926デフォルトの名無しさん
2008/05/15(木) 23:13:560927デフォルトの名無しさん
2008/05/16(金) 01:16:020928デフォルトの名無しさん
2008/05/16(金) 01:24:220929デフォルトの名無しさん
2008/05/16(金) 01:24:490930デフォルトの名無しさん
2008/05/16(金) 01:31:460931デフォルトの名無しさん
2008/05/16(金) 01:33:330932デフォルトの名無しさん
2008/05/16(金) 01:38:300933デフォルトの名無しさん
2008/05/16(金) 01:40:420934デフォルトの名無しさん
2008/05/16(金) 01:41:150935デフォルトの名無しさん
2008/05/16(金) 01:41:33東京大学名誉教授、和田英一とPFU研究所との共同開発
0936デフォルトの名無しさん
2008/05/16(金) 01:43:33LC共振回路のLあるいはCを,共振周波数のほぼ2倍の周波数2fで変動させると,パラメータ励振により周波数fの振動を励起することができる.
東京大学ではパラメトロンを用いた電子計算機PC-1を1958年に試作した.パラメトロンは東京大学理学部高橋秀俊研究室の後藤英一により発明された.
PC-1は,命令語は18ビットの短語,数値は短語18ビット,長語36ビットの固定小数点2進法計算機であった.
0937デフォルトの名無しさん
2008/05/16(金) 01:47:20ttp://love6.2ch.net/test/read.cgi/book/1196344505/
なんじゃこれ?
0938デフォルトの名無しさん
2008/05/16(金) 01:56:440939デフォルトの名無しさん
2008/05/16(金) 08:55:230940デフォルトの名無しさん
2008/05/16(金) 10:38:030941デフォルトの名無しさん
2008/05/16(金) 10:47:31つまり高度に発展した科学と言うことですね。
0942デフォルトの名無しさん
2008/05/16(金) 10:59:180943デフォルトの名無しさん
2008/05/16(金) 11:12:28後藤「それほど大騒ぎにはならなかったよ。海外では、10年前にすでにENIACやEDSAC
なんかがあったし。それにパラメトロンはトランジスタコンピュータに比べて処理速度が遅い
からさ。トランジスタコンピュータのクロックが1メガヘルツなのに対して、パラメトロンコンピュータ
はせいぜい10〜30キロヘルツ程度だったんだから。
ずっとあとになって、MITのマッカーシーと親しくなったんだが、彼にいわれたよ。『パラメトロン
とはおもしろいことを考えたもんだが、何でそんな遅い素子を作ったんだい?』ってね。
そんなこといわれたって、予算はMITの1000分の1ぐらいしかなかったんだから。」
0944デフォルトの名無しさん
2008/05/16(金) 11:21:30良い本だよね。
0945デフォルトの名無しさん
2008/05/16(金) 12:47:52例えばsequenceを再設計、とかいう研究はありますか?
0946デフォルトの名無しさん
2008/05/16(金) 14:11:240947デフォルトの名無しさん
2008/05/16(金) 14:12:440948デフォルトの名無しさん
2008/05/16(金) 16:50:36が激しくほしい
0949デフォルトの名無しさん
2008/05/16(金) 16:51:520950デフォルトの名無しさん
2008/05/17(土) 20:25:45遠藤諭: 「計算機屋かく戦えり」
0951デフォルトの名無しさん
2008/05/17(土) 20:35:57>>95-96に書いてあった。
ttp://en.wikipedia.org/wiki/HAL/S
Lisp系ってわけじゃないね。
でもHAL/S on IBM AP-101をエミュしてくれたら車載してみたい。ガンガレ!
0952デフォルトの名無しさん
2008/05/17(土) 23:48:52それのif版が欲しくなって書いてみたんですけど
(define-macro (if-let* binding-list consequent alternative)
(cond ((null? binding-list)
consequent)
((and (pair? binding-list)
(symbol? (caar binding-list)))
(let ((tmp (gensym)))
`(let ((,tmp ,(cadar binding-list)))
(if ,tmp
(let ((,(caar binding-list) ,tmp))
(if-let* ,(cdr binding-list)
,consequent
,alternative))
,alternative))))))
こんな感じでいいんでしょうか?
最後にalternativeが連続で出現してるのが美しくない気がするのですが。
0953デフォルトの名無しさん
2008/05/18(日) 00:50:17(and-let* ((a b) (c d) ...) (lambda () consequent)))
0954デフォルトの名無しさん
2008/05/18(日) 01:08:390955デフォルトの名無しさん
2008/05/18(日) 01:10:320956デフォルトの名無しさん
2008/05/18(日) 14:12:19but we couldn’t get past the complexity and the notation to see “what was really going on.”
So we decided to implement a “toy” actors language.
We hoped that it could capture the essence of the ideas while remaining simple enough to understand.
It might even turn into something useful.
from "The History of Scheme" by Guy L. Steele Jr. (2006)
0957デフォルトの名無しさん
2008/05/18(日) 15:14:45プリミティヴ手続きに任せるのと
自分でチェックするのとどっちが主流ですか?
例えばあるオブジェクトをcarやcdrに渡す前に
pair?でチェックを掛けて
pairじゃなかったらエラーを投げるというコードを書くのか
それともそのままcarやcdrに渡して
carやcdrにエラーを投げさせるのか
どちらが一般的でしょうか?
0958デフォルトの名無しさん
2008/05/18(日) 15:24:130959デフォルトの名無しさん
2008/05/18(日) 15:28:57コンディション/エラーを投げる前に何のための多値か考えたことある?
0960デフォルトの名無しさん
2008/05/18(日) 15:46:59ケースバイケース。それを考えるのがプログラマの仕事だ。w
例えば、ユーザの手入力を直接渡す場所ならチェックするだろう。
性能を重視するライブラリの中ではチェックしないだろう。
0961デフォルトの名無しさん
2008/05/18(日) 16:04:140962デフォルトの名無しさん
2008/05/18(日) 16:25:360963デフォルトの名無しさん
2008/05/18(日) 17:36:320964デフォルトの名無しさん
2008/05/18(日) 18:04:41(lambda (x)
(if (null? x)
empty ;ここは当然空リスト用コードですが
non-empty ;ここに空でないリスト用のコードを書くのか、))
(lambda (x)
(cond ((null? x) empty)
((pair? x) non-empty)
(else error-code))) ;のように書くのか
どうするのが一般的か知りたかったんです。
引数の型チェックを自分で行うか
総称関数を使うか
パターンマッチングするか。
プリミティブ関数にエラーを投げさせるか
多値で呼び出し元に知らせるか
自分でエラーを投げるか。
0965デフォルトの名無しさん
2008/05/18(日) 18:07:43一般的な方法なんて無いよ
0966デフォルトの名無しさん
2008/05/18(日) 18:10:17一般的な用法などない lisp 系に限らず…
意図した処理が、意図した通りに動けば OK
そのうち、自分なりの方法論が確立される
# コーディング規約とかを押し付けられた場合はこの限りではないが…
# お金もらえないと飯食えないからねw
0967デフォルトの名無しさん
2008/05/18(日) 18:28:15意図した処理を意図した通りに動くようには、美しく簡潔に書けますが
間違った処理を行わせないように書くのは、冗長になったり、完全性に欠けたりしがちな気がします。
今のところは、関数を識別子に束縛する場合は
マクロで覆って引数チェックを行い、
意図しない引数の場合に関数名を表示してエラーを投げるようにしてます。
0968デフォルトの名無しさん
2008/05/18(日) 20:00:13>間違った処理を行わせないように書くのは、冗長になったり、完全性に欠けたりしがちな気がします。
以前、SML/NJがお気に入りでした。コンパイルが通ればエラーはほとんど無い
んですが、なんだか堅苦しくて。動的型付けのSchemeに戻ってきました。
気楽な分、エラー処理はちゃんと考えておかないといけないですね。
アマチュアだから気楽なもんですが。
0969デフォルトの名無しさん
2008/05/18(日) 20:02:12教科書的には
>(lambda (x)
> (cond ((null? x) empty)
> ((pair? x) non-empty)
> (else error-code)))
これが多いと思う。もしあなたが学生ならこれを勧める。
でも、仕事のやり方は常に改良されていく。主流とか一般なんて意味がない。
0970デフォルトの名無しさん
2008/05/18(日) 21:09:41>>319-328
いまさらだけどこのパターンマッチっておもしれーな。
ttp://codepad.org/a88jP6ef
0971デフォルトの名無しさん
2008/05/18(日) 21:55:35たしかに>>326のいうとおりでも動くみたいだ。
ttp://codepad.org/5ou1TVe1
0972デフォルトの名無しさん
2008/05/18(日) 23:38:53ttp://codepad.org/nRrFfv7w
0973デフォルトの名無しさん
2008/05/19(月) 01:46:19(turtles #t)
(define (dr n)
(if (< n 0) (display "終了\n")
(begin
(draw (* n 4))
(turn n)
(dr (- n 1)))))
(move -150)
(turn -90)
(move -200)
(dr 100)
0974デフォルトの名無しさん
2008/05/19(月) 23:00:17Prologと考えるとトリッキーな文法だけど一応動いた。
ただ、すぐにメモリーのリークでコケル。
ttp://codepad.org/cgNOmn0r
0975デフォルトの名無しさん
2008/05/19(月) 23:02:04例題はBratkoから拝借。
0976デフォルトの名無しさん
2008/05/20(火) 16:08:41get-charのやるチェックを全部書いてらんないから。
(guard (c (hoge))
(let loop ((s '()))
(if (= (length s) 4)
s
(loop (cons (get-char (current-input-port)) s)))))
シンタックスチェックとか全部書いてらんないから。
(guard (c (hoge)) (eval user-input-expr (interaction-environment)))
基本的なリスト操作とかの引数のチェックはしない。引数がヤバそうなら上位でguard。
0977デフォルトの名無しさん
2008/05/20(火) 16:12:0410章であと少しで読み終わるのに。
0978デフォルトの名無しさん
2008/05/20(火) 22:13:46みたいなもんじゃない。誰が弾いてもそこそこ良い音がする。
Scheme、Lispはフェンダーのストラトだろう。名手が弾けば素晴らしい
サウンドがでるけど、それは弾く者の力量しだいみたいな。
どうチェックするのか、しないのか、サボるのか。プログラマの力量しだい。
0979デフォルトの名無しさん
2008/05/20(火) 22:16:170980デフォルトの名無しさん
2008/05/20(火) 22:31:31そこらの小僧に old もんのレスポール弾かして出てくる音と
本職の連中が出す音とは歴然たる差がある様に聞こえるのは
俺一人?
マーシャル3段積ディストーションかけまくりでも、だ…
0981デフォルトの名無しさん
2008/05/20(火) 23:03:23ギターもプログラミングも個性はここぞ使うと生きるように思う。
0982デフォルトの名無しさん
2008/05/21(水) 00:09:15個性的なコードでなくて済む場所なんて、コード自動生成プログラムで作ればいいじゃん。
人間がわざわざ作るんだから、個性的なコード以外不要なんですよ。w
0983デフォルトの名無しさん
2008/05/21(水) 07:40:55そんなこというと蛇が化けてでるぞ〜(w
0984デフォルトの名無しさん
2008/05/21(水) 12:40:27他人が作ったコードを改造するのにはいいよ
0985デフォルトの名無しさん
2008/05/21(水) 21:01:34ttp://codepad.org/hqwyVHRh
0986デフォルトの名無しさん
2008/05/21(水) 21:03:35馬鹿w
0987デフォルトの名無しさん
2008/05/21(水) 21:21:000988デフォルトの名無しさん
2008/05/21(水) 23:30:49length使ってるか観てみたら使ってないね。
lengthが遅いのは知ってる人達か。
0989デフォルトの名無しさん
2008/05/21(水) 23:59:22つttp://pc11.2ch.net/test/read.cgi/tech/1211381920/l50
0990デフォルトの名無しさん
2008/05/22(木) 00:06:24λ・・・じゃなくて乙!
0991(= 952 954 955 957 964 967)
2008/05/22(木) 00:27:04返答ありがとうございます。
いろいろ試行錯誤してみます。
if-let*の改良版
(define-macro (if-let* binding-list consequent alternative)
(define (block sym lst)
(if (and (pair? lst)
(eq? (car lst) sym))
`(begin ,@(cdr lst))
lst))
(let loop ((lst binding-list))
(if (null? lst)
(block 'then consequent)
(let ((temp (gensym)))
`(let ((,temp ,@(cdar lst)))
(if ,temp
(let ((,(caar lst) ,temp))
,(loop (cdr lst)))
,(block 'else alternative))))))))
再帰マクロじゃなくて局所再帰関数にしたほうが無駄がないですね。
0992デフォルトの名無しさん
2008/05/22(木) 07:11:070993デフォルトの名無しさん
2008/05/22(木) 09:03:520994デフォルトの名無しさん
2008/05/22(木) 10:00:310995デフォルトの名無しさん
2008/05/22(木) 12:11:19ということは、
オンリーワンじゃなくてもいいのさ。
0996デフォルトの名無しさん
2008/05/22(木) 17:55:550997デフォルトの名無しさん
2008/05/22(木) 19:07:270998デフォルトの名無しさん
2008/05/22(木) 19:08:010999デフォルトの名無しさん
2008/05/22(木) 19:09:581000デフォルトの名無しさん
2008/05/22(木) 19:10:2110011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。