Lisp Scheme Part24

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
※ ここはCommon Lisp、SchemeをはじめとするLisp族全般のスレです ※

□過去スレ□
Part23: ttp://pc11.2ch.net/test/read.cgi/tech/1215875388/
Part22: ttp://pc11.2ch.net/test/read.cgi/tech/1211381920/
Part21: ttp://pc11.2ch.net/test/read.cgi/tech/1207300697/
Part20: 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/
Part09: ttp://pc2.2ch.net/test/read.cgi/tech/1069594582/
Part08: ttp://pc5.2ch.net/tech/kako/1058/10582/1058263391.html
Part07: ttp://pc5.2ch.net/tech/kako/1042/10421/1042167213.html
Part06: ttp://pc3.2ch.net/tech/kako/1031/10315/1031560687.html
Part05: ttp://pc3.2ch.net/tech/kako/1023/10230/1023091882.html
Part04: ttp://pc.2ch.net/tech/kako/1016/10162/1016211619.html
Part03: ttp://pc.2ch.net/tech/kako/1008/10082/1008220265.html
Part02: ttp://pc.2ch.net/tech/kako/1002/10025/1002584344.html
Part01: ttp://piza2.2ch.net/tech/kako/987/987169286.html

□テンプレート置き場□
ttp://wiki.fdiary.net/lisp/ (id:guest pass:cl)
2デフォルトの名無しさん:2008/10/25(土) 21:54:06
□参考リンク□

日本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
Scheme処理系「Gauche」の作者である川合史朗氏のサイト。
「普通のやつらの上を行け」など、興味深い文書を沢山翻訳されてます。

LispUser.net (日本語)
ttp://lispuser.net/
Lisp関連の有用な情報がまとめられています。Common Lispの話題が中心。
3デフォルトの名無しさん:2008/10/25(土) 21:54:49
□仕様関係□

CLtL2: 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.lispworks.com/documentation/HyperSpec/Front/index.htm

Common Lisp Quick Reference (英語)
ttp://clqr.berlios.de/

R5RS: Revised(5) Report on the Algorithmic Language Scheme (英語)
ttp://swiss.csail.mit.edu/~jaffer/r5rs_toc.html

R5RS: Revised(5) Report on the Algorithmic Language Scheme (日本語)
ttp://www.sci.u-toyama.ac.jp/~iwao/Scheme/r5rsj/html/r5rsj.html

ERR5RS: A proposal for an Extended R5RS Scheme (英語)
ttp://scheme-punks.cyber-rush.org/wiki/index.php?title=ERR5RS:Charter

R6RS: Revised(6) Report on the Algorithmic Language Scheme (英語)
ttp://www.r6rs.org/final/html/r6rs/r6rs.html
4デフォルトの名無しさん:2008/10/25(土) 21:55:22
5デフォルトの名無しさん:2008/10/25(土) 21:56:17
□書籍関連(1)□

Structure and Interpretation of Computer Programs (英語)
ttp://mitpress.mit.edu/sicp/
通称「SICP」として知られる『計算機プログラムの構造と解釈』の原書です。
全文がオンラインで読めます。
ttp://sicp.ipl.t.u-tokyo.ac.jp/ (日本語版サポートサイト)

Programming Languages: Application and Interpretation (英語)
ttp://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/
ブラウン大学で使われている、Schemeを使ったプログラミング言語論の教科書。
SICPでは触れられていない継続についても、Webアプリと関連づけて詳述されています。
全文がpdf形式でダウンロードできます。

How to Design Programs (英語)
ttp://www.htdp.org/2003-09-26/Book/
Schemeを使った優れたプログラミング入門書。全文がオンラインで読めます。

The Little Schemer (英語)
ttp://www.ccs.neu.edu/home/matthias/BTLS/
The Seasoned Schemer (英語)
ttp://www.ccs.neu.edu/home/matthias/BTSS/
Schemeの教科書として定評のある「Schemerシリーズ」のサポートページです。

The Scheme Programming Language (英語)
ttp://www.scheme.com/tspl3/
Scheme入門書。全文がオンラインで読めます。
6デフォルトの名無しさん:2008/10/25(土) 21:57:14
□書籍関連(2)□

『プログラミングGauche』 (日本語)
ttp://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?&ISBN=978-4-87311-348-7
ttp://karetta.jp/book/gauche-hacks (立ち読み版)
ttp://karetta.jp/book-cover/programming-gauche (サポートページ)
Scheme処理系言語Gaucheの初の解説書!

『入門Scheme』 (日本語)
ttp://www4.ocn.ne.jp/~inukai/scheme_primer_j.html
幻となったScheme入門書。全文がダウンロードできます。

Common Lisp: A Gentle Introduction to Symbolic Computation (英語)
ttp://www.cs.cmu.edu/~dst/LispBook/
Common Lispを使った非常に丁寧なプログラミング入門書。
全文がpdf形式でダウンロードできます。

Practical Common Lisp (英語)
ttp://www.gigamonkeys.com/book/
ttp://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=978-4-274-06721-1
S式の羅列で現実的な問題をどう解くのか、そのギャップに悩まされてる人に。
全文がオンラインで読めます。日本語版は『実践Common Lisp』として出版されています。
ttp://pcl.lispuser.net/ (日本語版非公式サポートページ)

『On Lisp』 (日本語)
ttp://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=978-4-274-06637-5
ttp://user.ecc.u-tokyo.ac.jp/~tt076524/onlispjhtml/ (日本語訳HTML版)
ttp://www.paulgraham.com/onlisp.html (英語原文がダウンロード可)
LispハッカーPaul Grahamが、Lispの力の源泉であるマクロプログラミングを解説。
7デフォルトの名無しさん:2008/10/25(土) 22:03:33
□その他(1)□

John McCarthy's Home Page (英語): Lispの生みの親、ジョン・マッカーシーのサイトです。
ttp://www-formal.stanford.edu/jmc/

Association of Lisp Users (英語): 米国のLispユーザ会です。
ttp://www.alu.org/alu/home

CLiki (英語): Common Lisp関連のリソースが集積されています。
ttp://www.cliki.net/index

CMU Common 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/

The EncyCMUCLopedia (英語): CMUCL関連文書。CMUCLユーザーでなくとも有益なはず。
ttp://www.isr.ist.utl.pt/library/docs/encycmuclopedia/doc/

Common-Lisp.net (英語): 多くのプロジェクトがホスティングされています。
ttp://common-lisp.net/

よろずや (日本語): Lisp関連の実用的な情報が色々。
ttp://www.geocities.co.jp/SiliconValley-SanJose/7474/

どう転んでもLisp (日本語): 竹内郁雄氏による発表のスライドです。
ttp://jp.franz.com/base/seminar/2005-11-18/SeminarNov2005-Takeuchi.files/v3_document.htm

Lispとは何か (日本語): 中村正三郎氏による発表のスライドです。
ttp://www.asahi-net.or.jp/%7Eki4s-nkmr/lisp20061121/lisp.html
8デフォルトの名無しさん:2008/10/25(土) 22:04:11
□その他(2)□

独習Scheme三週間 (日本語): Schemeの教科書。
ttp://www.sampou.org/scheme/t-y-scheme/t-y-scheme-Z-H-1.html

Bibliography of Scheme-related Research (英語): Scheme関連の論文リンク集。
ttp://library.readscheme.org/

Scheme Hash (英語): S式でXMLを使えるようにするSXML等。
ttp://okmij.org/ftp/Scheme/index.html

Scheme-users.jp (日本語): Schemeユーザのためのハブサイトです。
ttp://scheme-users.jp/

(Scheme) (Lisp) (日本語): 各種Scheme処理系をCygwin上でビルドする方法など。
ttp://www.geocities.co.jp/SiliconValley-PaloAlto/7043/

SLIB (英語): Scheme用のライブラリとして有名なSLIBのサイトです。
ttp://swiss.csail.mit.edu/~jaffer/SLIB

Scheme Requests for Implementation (英語): いわゆる「SRFI」のサイトです。
ttp://srfi.schemers.org/

Meadow memo: 2ちゃんねるログ: dat落ちした過去スレの一部が見られます。
ttp://www.bookshelf.jp/2ch/index.html
9デフォルトの名無しさん:2008/10/25(土) 22:05:02
□その他(3)□

初心者が集うIRC(布教してくれる先生も大募集です)。
irc.scenecritique.com
port 6667
チャンネル #Lisp_Scheme

Schemeのテストコード書いたり、簡単な実行したりコードさらしたりするにはここへカモン。
ttp://codepad.org/
コードを書いて実行した時のURLを記録しておけば、実行結果も一緒にさらす事が出来て幸せです。
10デフォルトの名無しさん:2008/10/25(土) 22:05:54
□Schemeの実装(1)□

Gauche: マルチバイト文字に対応したR5RS準拠のScheme処理系。川合史朗氏作。
ttp://practical-scheme.net/gauche/index-j.html
ttp://jp.youtube.com/watch?v=WEBOdWyGE3E (川合史朗氏によるGaucheに関するトーク)

PLT Scheme: DrScheme、MzSchemeなどのR5RS準拠および独自拡張のScheme処理系。
ttp://www.plt-scheme.org/

Scheme48: R5RS準拠のSchemeバイトコードインタプリタ。
ttp://www.s48.org/

Gambit-C: R5RS準拠のScheme処理系。
ttp://dynamo.iro.umontreal.ca/~gambit/wiki/index.php/Main_Page

Chicken: R5RS準拠のScheme処理系。スタンドアロン実行ファイルが簡単に作成可能。
ttp://www.call-with-current-continuation.org/

Stalin: 激烈な最適化を施すScheme処理系。人間の書くCコードより速いという噂。
ttp://cobweb.ecn.purdue.edu/~qobi/software.html
ftp://ftp.ecn.purdue.edu/qobi/fdlcc.pdf (Stalinの最適化技術を解説した論文)

Bigloo: CLR用のコードを吐けるようになったらしい。
ttp://www-sop.inria.fr/mimosa/fp/Bigloo/

Guile: R5RS準拠のGNU公式拡張用言語。もちろんSLIBも使えます。
ttp://www.gnu.org/software/guile/guile.html

JScheme: Javaで書かれたR4RS準拠Scheme処理系。Javaインターフェイスをサポート。
ttp://jscheme.sourceforge.net/jscheme/main.html
11デフォルトの名無しさん:2008/10/25(土) 22:08:10
□Schemeの実装(2)□

Chez Scheme: R6RS準拠の商用Scheme処理系。インタプリタはフリー。
ttp://www.scheme.com/

Ypsilon Scheme System: 藤田善勝氏が開発中のR6RS準拠のScheme処理系。
ttp://www.littlewingpinball.net/mediawiki-ja/index.php/Ypsilon_Scheme_System

Mosh: higepon氏が開発中のR6RS準拠Scheme処理系。
ttp://code.google.com/p/mosh-scheme/

SECDR-Scheme: SECD machine modelに基づく実装。
ttp://lily.fan.gr.jp/~kmd/adhoc/view.rhtml?n=SECDR-Scheme_woyomu

LispMe: Palm上で動くScheme処理系。これもSECD virtual machine。
ttp://www.lispme.de/lispme/

Minischeme: 1ファイルに凝縮されたScheme処理系。
ttp://tinyscheme.sourceforge.net/minischeme.tar.gz

TinyScheme: Minischemeを色々弄ったもの。
ttp://tinyscheme.sourceforge.net/

Schemix: Linuxのkernelへのパッチで/dev/として扱えるTinyScheme。
ttp://www.abstractnonsense.com/schemix/

Bit: Minischemeよりも小さい(?)バイトコード変換系。
ttp://www.iro.umontreal.ca/~dube/

KI-Scheme, AM-Scheme, etc...
ttp://www.nifty.com/download/dos/prog/lisp/
12デフォルトの名無しさん:2008/10/25(土) 22:09:31
□Common Lispの実装□

Steel Bank Common Lisp: 代表的なCommon Lisp処理系。CMUCLより派生。
ttp://www.sbcl.org/

CMUCL: Common Lisp処理系。
ttp://www.cons.org/cmucl/

GNU CLISP: Common Lisp処理系。バイトコード変換系。
ttp://www.clisp.org/

Clozure CL: Common Lisp処理系。
ttp://trac.clozure.com/openmcl

Embeddable Common Lisp: Cで書かれたプログラムへの埋め込みが可能なCommon Lisp処理系。
ttp://ecls.sourceforge.net/

Armed Bear Common Lisp: JVM上で動くCommon Lisp処理系。JVMバイトコード変換系。
ttp://armedbear.org/abcl.html

Allegro Common Lisp: 代表的な商用Common Lisp処理系。
ttp://www.franz.com/products/allegrocl/

LispWorks: 商用Common Lisp処理系。
ttp://www.lispworks.com/

Corman Common Lisp: 商用Common Lisp処理系。
ttp://www.cormanlisp.com/

Scieneer Common Lisp: 商用Common Lisp処理系。
ttp://www.scieneer.com/scl/index.html
13デフォルトの名無しさん:2008/10/25(土) 22:10:45
□その他の実装□

awklisp: Awkで書かれたわずか500行のLispインタプリタ。
ttp://www.accesscom.com/~darius/

CAMPUS LIsP Lemon version: Cでわずか1000行。
ttp://www-masu.ist.osaka-u.ac.jp/~kakugawa/hacks/clisp/

Lisp interpreter in AS3: ActionScriptで書かれたLispインタプリタ。
ttp://www.solve-et-coagula.com/?p=8

Arc: ポール・グレアム氏が開発中の新しいLisp。
ttp://arclanguage.org/

Clojure: MLやHaskellの特長を取り入れた新しいLisp。JVMバイトコード変換系。
ttp://clojure.org/

Qi: MLやHaskellの特長を取り入れた新しいLisp。型の定義にシーケント計算表記を用います。
ttp://www.lambdassociates.org/

GOO: DylanとSchemeの影響を受け、OOPをサポートした新しいLisp。
ttp://people.csail.mit.edu/jrb/goo/

Liskell: Lispの顔をしたHaskell。
ttp://liskell.org/
14デフォルトの名無しさん:2008/10/25(土) 22:12:01
□イベント関連□

Shibuya.lisp
ttp://shibuya.lisp-users.org/
東京地区、特に渋谷周辺半径2万キロの Lisp 系プログラマによる非営利団体。
第1回テクニカルトークは2008年10月18日に開催されました。

GaucheNight (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://www.bookshelf.jp/2ch/tech/1151025773.html#901
Schemeのマクロに関する黒田氏の所感
ttp://cl-www.msi.co.jp/solutions/knowledge/lisp-world/articles/scheme
それに対する川合史朗氏の応答
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
それに対する黒田氏の再反論
ttp://cl-www.msi.co.jp/solutions/knowledge/lisp-world/articles/gauche-night
それに対する川合氏の応答
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%3a%e6%84%8f%e5%91%b3%e8%ab%96

その他、黒田氏によるLisp関連のエッセイがこちらで読めます。
ttp://cl-www.msi.co.jp/solutions/knowledge/lisp-world/
15デフォルトの名無しさん:2008/10/25(土) 22:14:30
□2ch上にあるLisp関連のスレ□

(make-thread :name common-lisp :part 5)
ttp://pc11.2ch.net/test/read.cgi/tech/1215834213/
Emacs Lisp 3
ttp://pc11.2ch.net/test/read.cgi/tech/1191875993/
【魔法】リリカル☆Lisp【言語】
ttp://pc11.2ch.net/test/read.cgi/tech/1183396621/
【SICP】計算機プログラムの構造と解釈 Part2
ttp://pc11.2ch.net/test/read.cgi/tech/1203096230/
【普通のやつらの】 Arc Language 0 【上を行け】
ttp://pc11.2ch.net/test/read.cgi/tech/1202098949/
【CGI】実用比較Lisp vs C/C++【GUI】
ttp://pc11.2ch.net/test/read.cgi/tech/1150501484/
【ヤパーリ】XMLをS式に置換えていくスレ【LISP最強】
ttp://pc11.2ch.net/test/read.cgi/tech/1140006937/
Lisp@UNIX版
ttp://pc11.2ch.net/test/read.cgi/unix/1019926525/
Lisperこそ真のプログラマーよ!!
ttp://pc11.2ch.net/test/read.cgi/prog/1175791979/
LISPってさ〜
ttp://science6.2ch.net/test/read.cgi/sim/1015169050/
【数式処理システム】 Maxima 【Common Lisp】
ttp://science6.2ch.net/test/read.cgi/math/1220340695/
16デフォルトの名無しさん:2008/10/25(土) 22:18:53
なぜかテンプレサイトに繋がらなかったり、連投規制に引っかかったりして苦戦しましたが、
テンプレは以上です。補足等、よろしくお願いします。
17デフォルトの名無しさん:2008/10/25(土) 22:27:14
1さん大変お疲れ〜
>>16
wikiの管理人なんですけど、あそこは時々つながりにくくなる。Rubyの本拠のNACLが
運営しているフリーwikiホスティングなんだが…。Rubistを刺激したく無いけど。少し頑張っ
て欲しいと思う。移動させたいという話が出てきたならどうぞコピーしていってやってくだ
さい。と思ってます。
18デフォルトの名無しさん:2008/10/25(土) 22:29:03
>>1
これは乙じゃなくてポニーテールなんたらかんたら
19デフォルトの名無しさん:2008/10/25(土) 23:00:02
(乙 (rref 1))
20デフォルトの名無しさん:2008/10/25(土) 23:06:10
     ::|
     ::|    ____
     ::|.  ./|=|    ヽ.    ≡三< ̄ ̄ ̄>
     ::|. / |=|  o  |=ヽ     .≡ ̄>/
     ::|__〈 ___  ___l   ≡三/ /
     ::|、ヽ|.|┌--、ヽ|/,-┐|    ≡/  <___/|
     ::|.|''''|.\ヽ--イ.|ヽ-イ:|  ≡三|______/
     ::|.ヾ |.::. .. ̄ ̄| ̄ /
     ::|  ';:::::┌===┐./
     ::| _〉ヾ ヾ二ソ./       こ、これは>>1乙じゃなくてスラッガーなんだから
     ::||ロ|ロ|  `---´:|____    変な勘違いしないでよね!
     ::|:|ロ|ロ|_____/ロ|ロ|ロ,|`ヽ
     ::| |ロ|旦旦旦旦旦/ロ/ロ|旦,ヽ
     ::|ロヽ 旦旦旦旦旦./ロ,/|::旦旦)
     ::|ヾ旦旦旦旦旦旦,,,/::::|、 旦旦|
21デフォルトの名無しさん:2008/10/25(土) 23:08:13
できておる。できておるのう…前スレ>>1000は…。
22デフォルトの名無しさん:2008/10/25(土) 23:44:08
はやるとしても
車に例えるとレース用だろ
23デフォルトの名無しさん:2008/10/26(日) 00:01:49
'(1000を とった から lispは これからは やるよ)
24デフォルトの名無しさん:2008/10/26(日) 00:19:33
>>23
(eq >>23 >>1000@前スレ) ; nil

(setf message '(1000を とった から lispは これから はやるよ))

(eq message >>1000@前スレ) ; T
25デフォルトの名無しさん:2008/10/26(日) 00:43:22
Scheme実装に追加したげて
ttp://www.codeplex.com/IronScheme
26デフォルトの名無しさん:2008/10/26(日) 03:14:06
何で埋めちゃうんだよ…
月曜ネット再開通するまでに前スレ落ちたらなぁ、
いいか?ううう恨むからな。コラ!


1乙\(^o^)/
27デフォルトの名無しさん:2008/10/26(日) 03:18:42
□その他(4)□
21世紀になってUnixはないでしょって。
これはね、SolarisがとうとかLinuxがどうとかというレベルじゃないですよ。
もうひとつ上のレベル。
OSという本質的な意味ね。IBMとかが「Linuxで!」なんて聞くと「え?っ!」て思うもん。
「あなたたち、IBMでしょ。それはないんじゃないですか?」って。
そりゃMulticsの時代にMulticsってヤバイからUnixねって、それって何10年も前の話でしょ。
http://sdc.sun.co.jp/news/200201/danwa01.html
28デフォルトの名無しさん:2008/10/26(日) 03:22:42
>>27
だれかこれ日本語に翻訳してくれないか
29デフォルトの名無しさん:2008/10/26(日) 04:28:04
>>17
WiLiKiに置いとけば?
30デフォルトの名無しさん:2008/10/26(日) 12:04:50
>>17
お、管理人さんか。地道な更新乙。
31デフォルトの名無しさん:2008/10/26(日) 12:45:42
Who wares PIYO-PIYO
32デフォルトの名無しさん:2008/10/26(日) 13:02:46
>>30
管理人は名ばかりで少しの更新はしてますが、多くの更新はlisp系スレッドの住民の
方々によるものなのです。みなさんの協力があってこそなりたっていまして、こちらこそ
協力にありがとうです。
33デフォルトの名無しさん:2008/10/26(日) 14:35:19
>>28
いや、いわんとしてることはわかると思うけどな。
Unix lile OS の次を模索してないようじゃだめでしょ、というか。
34デフォルトの名無しさん:2008/10/26(日) 14:59:03
>>33
あるのでしょうか?mach?まだよくわからない hurd ?
35デフォルトの名無しさん:2008/10/26(日) 15:35:42
Plan9
36デフォルトの名無しさん:2008/10/26(日) 15:46:16
つうか、昔のUnixと今のUnixじゃまったく別物でしょ。
37デフォルトの名無しさん:2008/10/26(日) 15:46:28
Lispマシン再考ってか。
38デフォルトの名無しさん:2008/10/26(日) 15:52:11
cpuはともかくメモリは連続アドレスの今の方式以外考えられないよね?
lispマシンって何が弱いんだったっけ…。
39デフォルトの名無しさん:2008/10/26(日) 15:55:01
仮想マシンじゃダメなん?
40デフォルトの名無しさん:2008/10/26(日) 16:41:53
>>27に書いてあるような100万スレッドって、スケーラビリティを念頭に置いてるのかな?
既存のOSの発想では不可能でしょ、JK。
mach や hurd もその点では同じ。Solarisも大したことないし。
どのOSでも大した違いが無いということは、裏を返せば共通する不満点があるんだってことだ。
それを提示できるのはCSの人間だって?それはどうかな。
41デフォルトの名無しさん:2008/10/26(日) 16:43:14
>>37
んー、魅力的。ICOT ってlispでしたっけ?prolog?
42デフォルトの名無しさん:2008/10/26(日) 16:43:44
>>36
Dr.は、もっと根本的な変化を望んでるんじゃないの?
43デフォルトの名無しさん:2008/10/26(日) 16:52:51
>>42
たしかに奇想天外なアイディアがほしいところですね。やっぱりICOT?
44デフォルトの名無しさん:2008/10/26(日) 17:12:21
10年と570億円をかけたプロジェクトが完成したのはアプリケーションのほとんどない並列推論システムだけだった。
成果が産業に影響を与えることはなく、学術振興と人材育成に寄与しただけだった。その結果がDr.・・・
応用の進展を阻んでいるのはソフトウェアが存在しないからであって、強力な推論マシンがないからではない。
ソフトウェアが既にたくさんあって、強力な推論エンジンの出現を待ちわびていると思うのは間違いだ。
もし、応用分野があればLispなら素早く書き安いだろうが、応用分野を指摘できていない点で内容が無い文章だ。
45デフォルトの名無しさん:2008/10/26(日) 17:14:19
>>44
んで、君なら応用分野を指摘できるの?
できないんならDrを批判する立場にないね。
46デフォルトの名無しさん:2008/10/26(日) 17:17:32
>>45
オマエモナー
47デフォルトの名無しさん:2008/10/26(日) 17:19:04
いまどきLispって使えるの?
4841,43:2008/10/26(日) 17:20:42
44 じゃないですが。自然言語の相互翻訳は、今はどの程度まで到達しているのでしょうか?
49デフォルトの名無しさん:2008/10/26(日) 17:33:40
>>48
http://www.google.com/language_tools?sourceid=navclient&hl=ja
例としてgoogle翻訳を試してみると分かると思うよ。
文法的に似てる言語間ではうまく翻訳できる。例えば、ロマン語(イタリア・フランス・スペイン)。
日本語の場合、韓国語はOKだけど、中国語は駄目。英語も駄目だね。
特にユーザー数が少ない言語は登録語彙数が少なくてうまく訳せない。
こういうアプリケーションはオープンソースで辞書を共有すると発展しそう。
推論エンジンはあまり関係なくなってるかな。障害は主に文法的な例外だから。
50デフォルトの名無しさん:2008/10/26(日) 18:09:30
GPLTransも五年は更新されてないのか。死んでますね。
http://sourceforge.net/projects/gpltrans/
51デフォルトの名無しさん:2008/10/26(日) 18:57:55
>>49
分詞構文とか仮定法(接続法)はまったくだめですね。
5251:2008/10/26(日) 19:00:59
雑談ですみません。英語->日本語の話です。
とあるサイトの経験では韓国語は割りといいみたいです。日->韓->日で違和感がないですから。(というか違和感が発生しないように元の日本語をかいています。
でも、英語<->日本語が実用になるのはいつの話か。
これを大掛かりなシステムでがんばろう、という団体は現れるのでしょうか。
53デフォルトの名無しさん:2008/10/26(日) 19:02:41
エンコリ以外にあるのかね
54デフォルトの名無しさん:2008/10/26(日) 19:17:52
NAVERとかの日->韓->日は評判が良いらしい。
英語<->日本語が実用になるには文法のルールをしっかり見つけて登録するしかない。
文法の推論エンジンに問題があるわけじゃない。
ビジネス的には英中のプライオリティが高いから日本語は後回しだと思う。
現実問題として、食品・医薬品分野の品質保証で英中自動翻訳は急務。
世界中から引き合いが在る。
55デフォルトの名無しさん:2008/10/26(日) 19:38:02
マクロについての質問なのですが、よろしくお願いします。

http://practical-scheme.net/wiliki/wiliki.cgi?R6RS%3A%E7%BF%BB%E8%A8%B3%3AR6RS%3AB%20Sample%20definitions%20for%20derived%20forms
上のページのcondやcaseのマクロ例では
bodyやclauseにbody1, body2など、なぜか二つの要素がペアになっているのですが、
これには何か理由があるのでしょうか?
56デフォルトの名無しさん:2008/10/26(日) 20:28:30
body1 body2 ...は1個以上の式にマッチする
body ...は0個以上の式にマッチする
規格上式を本体に1個以上持つ事が要求されているので前者で記述されている
ちなみに...も1つの識別子だからbody1 body2 ...は3要素になります
57デフォルトの名無しさん:2008/10/26(日) 21:09:38
>>56
ばっちり理解できました。
ありがとうございます。
58デフォルトの名無しさん:2008/10/26(日) 21:47:37
http://bbs.enjoykorea.jp/
エンコリの右上にある翻訳機に
「또한 일본에서 여러 가지 포르노 문화를 꽃피워 있다. 」
をコピペして翻訳させたらちゃんと訳してくれてワロタ
さすがはキーセンの国
59デフォルトの名無しさん:2008/10/26(日) 22:31:01
한국의 대학생은 언제나 새타령 을 춤추고 있습니다.
60デフォルトの名無しさん:2008/10/26(日) 22:46:53
下賤な文字を見せるなボケ
61デフォルトの名無しさん:2008/10/26(日) 22:56:28
하천인 문자를 보이지 말아라 노망
62デフォルトの名無しさん:2008/10/26(日) 22:57:21
モールス信号かよw
63デフォルトの名無しさん:2008/10/26(日) 23:01:31
모르스 신호인가
64デフォルトの名無しさん:2008/10/26(日) 23:03:36
>>51
atr
65デフォルトの名無しさん:2008/10/26(日) 23:03:38
なんか?記号がいっぱい出るんだがなにがあった?
66デフォルトの名無しさん:2008/10/26(日) 23:06:56
翻訳どころか文字コード変換すら覚束無いみたいな
67デフォルトの名無しさん:2008/10/26(日) 23:09:43
मोर्स कोड?
68デフォルトの名無しさん:2008/10/26(日) 23:14:12
וכן תרגום של תווים לא יכול להיות קוד המרה.
69デフォルトの名無しさん:2008/10/26(日) 23:17:49
Có rất nhiều biểu tượng
70デフォルトの名無しさん:2008/10/26(日) 23:27:36
ภาษาประจำชาติเอาออกคนไม่เข้าใจ
เกณฑ์มาตรฐานการศึกษาต่ำ
71デフォルトの名無しさん:2008/10/26(日) 23:29:59
ماذا حدث؟
72デフォルトの名無しさん:2008/10/26(日) 23:30:53
☠実体参照使えたんでしたっけ?
73デフォルトの名無しさん:2008/10/26(日) 23:31:45
使えますね#x270c;
74デフォルトの名無しさん:2008/10/26(日) 23:32:26
จะดูถูกเหยียดหยามคนญี่ปุ่น
75デフォルトの名無しさん:2008/10/26(日) 23:35:17
ونحن في اليابان للفوز
76デフォルトの名無しさん:2008/10/26(日) 23:40:45
צ'יאונה סוגיהארה הוא כיבוד
77デフォルトの名無しさん:2008/10/26(日) 23:50:12
जापानी लोगों को पैसे से प्यार है.
78デフォルトの名無しさん:2008/10/27(月) 00:09:25
印度也喜欢钱
79デフォルトの名無しさん:2008/10/27(月) 00:17:14
जैसे कौन सी प्रोग्रामिंग भाषा तुम हो?
80デフォルトの名無しさん:2008/10/27(月) 00:22:24
العنصرية
8165:2008/10/27(月) 00:22:29
朝鮮語だけ?になるのはフォント削除したからだった
82デフォルトの名無しさん:2008/10/27(月) 00:25:14
Todos los Lisper japonés es racista, sadlly.
83デフォルトの名無しさん:2008/10/27(月) 00:33:01
みんな暴走しすぎ。
84デフォルトの名無しさん:2008/10/27(月) 00:46:49
>>17
いつも乙です。前スレが急に埋めたてられてしまったので、急いでテンプレ改訂して
新スレ立てようとしたら、そんなときに限って繋がらなかったので少々焦りました。

>>25を含めてテンプレ改訂しました。さすがに全15レスは長くて貼るのに時間がかかるので、
分類を整理・行間を圧縮して12レスにまとめましたがいかがでしょうか。インデントをつけた
ので、そんなに見にくくはなっていないと思うのですが。

ttp://wiki.fdiary.net/lisp/?%A5%C6%A5%F3%A5%D7%A5%EC+%28Lisp+Scheme%A5%B9%A5%EC%29

補足・修正等よろしくお願いします。>all
85デフォルトの名無しさん:2008/10/27(月) 01:04:41
1さん乙です
86デフォルトの名無しさん:2008/10/27(月) 01:13:04
(cons テンプレ 苫米地)
(テンプレ? 苫米地)
=>#f
87デフォルトの名無しさん:2008/10/27(月) 02:12:31
管理人さん乙です
その他のLisp実装に
newlispを加えるのはどうでしょう?
ttp://www.newlisp.org/
88デフォルトの名無しさん:2008/10/27(月) 04:47:37
Shibuya.lispの動画がニコニコに揃いましたね。
ttp://www.nicovideo.jp/tag/shibuya.lisp

>>87
やっておきましたが、せっかくのWikiなので、いちいち断わらずとも
適当に編集しちゃっていいと思いますよ。
89デフォルトの名無しさん:2008/10/27(月) 09:48:40
博士も知らないニッポンのウラ #30 脳機能学者 苫米地英人
http://www.nicovideo.jp/watch/sm4905951
90デフォルトの名無しさん:2008/10/27(月) 09:59:36
苫米地英人の宣伝がウザイ>>27, >>45, >>89
信者かアンチか知らんが
91デフォルトの名無しさん:2008/10/27(月) 11:53:48
宣伝だったのか・・・せめて日本語でやれよ
92デフォルトの名無しさん:2008/10/27(月) 18:56:32
言葉と言えば、アラビア語のLispは左右逆なのかな。
93デフォルトの名無しさん:2008/10/27(月) 19:04:01
(((c cc !tes) (c) adbmal) noitaunitnoc-tnerruc-htiw-llac)
94デフォルトの名無しさん:2008/10/27(月) 19:16:45
文の中でも英単語とか入るとそこだけ向きが変わったりしたような気がする。
95デフォルトの名無しさん:2008/10/27(月) 19:57:04
日本人ならLISPも縦書き。
96デフォルトの名無しさん:2008/10/27(月) 21:19:50
苫米地英人ってオウムシスターズと結婚した人でしたっけ?
97デフォルトの名無しさん:2008/10/27(月) 22:35:48
関数型言語はrepl以外の入出力が何もないときは楽だな。
入出力の処理を自分でやるときは手続き型のほうが自然に感じる。
98デフォルトの名無しさん:2008/10/27(月) 22:38:03
>>95
笑った
99デフォルトの名無しさん:2008/10/28(火) 10:09:30
>>92
ということは日本語のlispは縦書きですね
100デフォルトの名無しさん:2008/10/28(火) 10:37:19
これは恥ずかしい
101デフォルトの名無しさん:2008/10/28(火) 11:33:31
http://www2k.biglobe.ne.jp/~araken/qxw.htm
縦書きでプログラミングに使用できるエディタは存在する。
半角だけ横にすることも出来る。
102デフォルトの名無しさん:2008/10/28(火) 12:07:20
>>101
カッコやインデントに対応してくれw
103デフォルトの名無しさん:2008/10/28(火) 13:07:27
QXは縦書きが出来る以外利点が無いな。
104デフォルトの名無しさん:2008/10/28(火) 16:09:51
>>103
他に縦書きが出来てさらに他の利点もあるものをあげてくれよ。
emacsは縦書き出来ないし、なんかあるの?
105デフォルトの名無しさん:2008/10/28(火) 17:03:02
なんだそりゃ
106デフォルトの名無しさん:2008/10/28(火) 17:54:14
Windowsだけなのか?
107デフォルトの名無しさん:2008/10/28(火) 18:52:04
アプリケーションのほとんどない並列推論システムが死んだように、
他の利点の無いエディタも死んでいる。
死んで次に続かないものには意味を見い出せない。
あれは駄目、これは駄目と否定するだけの人間も死んでいる。
今、CSに必要なのは生きている人間だ。
108デフォルトの名無しさん:2008/10/28(火) 20:02:12
lispで作られたゲームってありますか?
109デフォルトの名無しさん:2008/10/28(火) 20:04:33
イプシロンって、組み込んだピンボール出たんだっけ?
110デフォルトの名無しさん:2008/10/28(火) 20:09:54
111110:2008/10/28(火) 20:11:04
リンク先にはジャック×ダクスターもそうだと書いてありますね
112デフォルトの名無しさん:2008/10/28(火) 20:33:50
imagicaのパーフェクトライフもそうみたいだぞ
113デフォルトの名無しさん:2008/10/28(火) 20:44:29
おお!そんなに活躍してるゲームにlispがあったんですか!
lispを勉強しようと思ってゲームでも作れたらいい目標になるなって思ってたんですけど
lispではそういうゲームエンジン的なものは無料で配布されてたりしないんですか?
114デフォルトの名無しさん:2008/10/28(火) 21:34:04
かなり古いゲームだし、それそのものが Lisp で書かれたわけではないが、
マザーの開発に Lisp が使われたりはしたみたいだな。
115デフォルトの名無しさん:2008/10/28(火) 21:34:26
>>110
作品名言えないけどプレステで使いました
116デフォルトの名無しさん:2008/10/28(火) 21:58:57
You! 言っちゃいなYo!
117デフォルトの名無しさん:2008/10/28(火) 22:06:41
ターゲット上で Lisp を動かしたわけじゃないけど
サターンのゲームで使ったお
118デフォルトの名無しさん:2008/10/28(火) 22:09:28
Lispが仕事なんて裏山志井。
ゲームじゃないけどAutoCADもLispでしょ?
119デフォルトの名無しさん:2008/10/28(火) 22:26:46
AutoCADのAutoDeskはMayaもSoftimageも買収したそうな。
ということは・・・
CGシステムの標準スクリプトはLispになる!?
ああ、シンボリクスの夢よ再び(笑
120デフォルトの名無しさん:2008/10/28(火) 23:29:34
>119
マジレスするとそれはない。
C++か.NET
121デフォルトの名無しさん:2008/10/28(火) 23:34:18
>>120
いくらなんでもC++は無いだろう
.NETはスクリプトには関係ないし
122デフォルトの名無しさん:2008/10/28(火) 23:37:58
じゃあIronSchemeを使えばいいのに
http://www.codeplex.com/IronScheme
123デフォルトの名無しさん:2008/10/29(水) 00:05:49
>>119
AutoLispってとっくにやめて、VBA組み込んでるんじゃなかったっけ?
>>120
さすがにC++じゃ機能拡張用プラグインでも作るのかって勢いだろ。
CAD/CG作成者にLisp覚えてくださいっていうよりきついわ〜
124デフォルトの名無しさん:2008/10/29(水) 00:08:31
>>118
> ゲームじゃないけどAutoCADもLispでしょ?
なんかlisperの人たちでAutoLisp使ったことが無い人が多いみたいなので
言っておくけど、AutoLispは相当古い仕様だぞ。
letすらない。activexは制御できるが。
今は VBA 使えるからそっちで作った方がマシかと。
125デフォルトの名無しさん:2008/10/29(水) 00:08:46
IronSchemeの存在意義がわからない。F#だけで十分だろ。
なんでわざわざSchemeで.Net使う必要があるんだ。
126デフォルトの名無しさん:2008/10/29(水) 00:29:26
俺が使いたいのは Schemeであって、関数型言語じゃないんだ!
て人向け。
127デフォルトの名無しさん:2008/10/29(水) 00:39:13
何がIronなのか判らない
128デフォルトの名無しさん:2008/10/29(水) 00:42:15
.NET搭載の時点で、もはや教育のための言語ですらない。
Schemeの利点を無視している。
129デフォルトの名無しさん:2008/10/29(水) 00:43:34
生きるって何なのか判らない
130デフォルトの名無しさん:2008/10/29(水) 00:46:47
教育用ならC#かJavaで手早く実装してしまえばいいのに
131デフォルトの名無しさん:2008/10/29(水) 03:39:53
LispはLisperの妄想のために存在する
それは生きる喜びに直結するのでLispには価値がある
132デフォルトの名無しさん:2008/10/29(水) 04:52:16
>>108
AngbandをCLで書き直したLangbandっていうのがあるみたい。
133デフォルトの名無しさん:2008/10/29(水) 08:15:27
最終的にはスクリプトもJavaScript系に固まってくんだろうなあ、いろいろと楽だから。
もしかしてEmacsもEmacsScriptを搭載してアイコンも牛ではなくなってしまう日は来るのか?・・・
134デフォルトの名無しさん:2008/10/29(水) 09:03:54
むしろECMAScriptで実装されたEcmasというエディタが主流になったりして
135デフォルトの名無しさん:2008/10/29(水) 10:58:49
>>114 WiLiki に詳細きぼん
136デフォルトの名無しさん:2008/10/29(水) 14:43:03
JavascriptってLispの方言でしょ?
137デフォルトの名無しさん:2008/10/29(水) 14:45:53
>>136 中村みたいな釣りはいりまへん
138デフォルトの名無しさん:2008/10/29(水) 15:53:36
ばれたか\(^o^)/
139デフォルトの名無しさん:2008/10/29(水) 22:01:08
ワロタw
140デフォルトの名無しさん:2008/10/29(水) 22:54:32
最も革新的な国は日本
http://c.2ch.net/test/-/news/1225285184/
141デフォルトの名無しさん:2008/10/30(木) 18:22:55
http://qb5.2ch.net/test/read.cgi/operate/1206636885/657
強制ID実装を駄目元で頼み込んでみた。
もし賛同してくれる人がいたら同意のレスつけてください。
142デフォルトの名無しさん:2008/10/30(木) 21:28:56
同意ノ
143デフォルトの名無しさん:2008/10/30(木) 21:39:03
T
144デフォルトの名無しさん:2008/10/31(金) 03:48:25
住人が少ないから必要ないだろ。
荒れてる原因は最近住み着いた奴なのも明白だし。
もしかしたら>>141じゃないかという気がしている。
145デフォルトの名無しさん:2008/10/31(金) 05:08:32
ID が付くと、関係無いスレにまで粘着してくる奴が居るから嫌だよ。
馴れ合い系の板ならそれでも良いかもしれないけど、ここはそうじゃないからね。
146デフォルトの名無しさん:2008/10/31(金) 06:05:19
>>141
そこは実効性の無いガス抜き用のスレでしょ。
いたずらに議論を煽るのは感心しないな。
147デフォルトの名無しさん:2008/10/31(金) 09:10:53
コピペに反応するなよ・・・
148デフォルトの名無しさん:2008/10/31(金) 10:21:38
専用ブラウザでみてるからつまらん煽りなどをあぼーんするのにも役に立つ<ID
149デフォルトの名無しさん:2008/10/31(金) 14:24:48
賛成だけど
こんな過疎スレじゃ役に立たない気がする
150デフォルトの名無しさん:2008/10/31(金) 15:48:32
自治スレでやれよ
だれも書き込んでないけどw
151デフォルトの名無しさん:2008/10/31(金) 23:11:53
板全体の問題だからここで議論するこっちゃないよ。
152デフォルトの名無しさん:2008/11/01(土) 06:33:32
Visual Scheme 2008 (Microsoft .Net Framework 3.5) -- R6RS compatible
Visual CommonLisp 2008 (Microsoft .Net Framework 3.5) -- Fast Incremental Compiler
Visual EmacsLisp 2008 (Microsoft .Net Framework 3.5) -- GNU Emacs compatible
153デフォルトの名無しさん:2008/11/01(土) 09:44:34
MS超関係ねぇー!
154デフォルトの名無しさん:2008/11/01(土) 16:28:55
R5RSでキボンヌ
155デフォルトの名無しさん:2008/11/01(土) 17:08:53
(car 'R6RS)
=> R
(cdr 'R6RS)
=> R5RS
156デフォルトの名無しさん:2008/11/02(日) 01:39:14
5と6の違いまでまだわからないのですが、
上位互換ということですね?
157デフォルトの名無しさん:2008/11/02(日) 01:56:19
釣りなら他所でやってくれないかな?
158デフォルトの名無しさん:2008/11/02(日) 02:46:39
なんでそんな殺伐としてるの?
以前のあなたはそんな風じゃなかった…
159デフォルトの名無しさん:2008/11/02(日) 08:24:42
R6RSが出てから、全てが変わってしまった……。
全部R6RSが悪いのよ!
160デフォルトの名無しさん:2008/11/02(日) 08:49:54
161デフォルトの名無しさん:2008/11/02(日) 12:04:07
>>159
いや、R5RSのバグが悪い。
162デフォルトの名無しさん:2008/11/03(月) 01:26:25
>>160
Gauche on Rails作ってる人だよね。
頑張ってるなー。
163デフォルトの名無しさん:2008/11/06(木) 20:47:01
Gauche on Railsって今後バージョンアップとかしていくのだろうか。

Rubyユーザが流れてきたりすると嬉しい。
164デフォルトの名無しさん:2008/11/06(木) 23:50:08
>>163
schemeの人って排他的な集団かと思ってたけどそうじゃないのか
165デフォルトの名無しさん:2008/11/07(金) 00:17:16
rubyはキチガイの声がデカイからあまり関わりたくない
以降禁止といこうか
166デフォルトの名無しさん:2008/11/07(金) 01:05:26
P言語の時代もそろそろ終わりだな
お前らの時代が少しだけ近づいた
167デフォルトの名無しさん:2008/11/07(金) 13:30:08
なにをいう、これからはPrologの時代。
高度な人工知能を構築して国産OSをつくろう。
σプロジェクトの始まりだ。
168デフォルトの名無しさん:2008/11/07(金) 13:39:32
プロジェクト名はωにしようぜ
169デフォルトの名無しさん:2008/11/07(金) 13:42:17
(・ω・)呼んだ?
170デフォルトの名無しさん:2008/11/07(金) 14:08:51
Schemeのプログラミングに関する質問なのですが、
教科書通りに打っているのですが出力が本と異なります。
(lambda (a b c d) (* (+ a b)(+ c d)) 2 3 4 5)
で49がでるはずですが
#<procedure>
が代わりに出ます。どうしてでしょうか。教えて頂けると助かります。
171デフォルトの名無しさん:2008/11/07(金) 14:10:45
170です
解決しました。( ) が足りてませんでした。
172デフォルトの名無しさん:2008/11/07(金) 14:17:39
そうそう、初心者は括弧の数を数えるところから始めなきゃならん
球技のボール拾いと同じだよ
がんばりたまえ
173デフォルトの名無しさん:2008/11/07(金) 15:51:09
Gauche on Railsのcommon lisp版がこれだと思っていいのかな
http://common-lisp.net/project/cl-weblocks/
174デフォルトの名無しさん:2008/11/07(金) 16:31:56
R5RSの記述についてお教えください.
p.31の最後の例 (call/cc procedure?) => #t の意味がわかりません.
最初は (procedure? call/cc) のtypoかと思いましたがどうやら上のS式で正しいようです.
call/ccの引数には「1個の引数をとるclosure」しか来ないと思い込んでいました.
procedure?のかわりにlist?などの1引数の手続きを与えてもエラーになります.
どのように解釈すればよいのでしょうか.よろしくお願いします.
175デフォルトの名無しさん:2008/11/07(金) 16:44:10
>>174
(call/cc list?) ってエラーになる?
176174:2008/11/07(金) 16:50:52
>>175
おっと失礼.別のエラーと混同してました.エラーにならないようです.
(call/cc list?) (call/cc string?) (call/cc vector?)などは #f を返しますね
177デフォルトの名無しさん:2008/11/07(金) 16:58:21
procedure?は評価されるとclosure。
call/ccはそのclosureに現在の継続を第一引数として渡し呼び出す。
継続は「手続き」なので#tが返る。

まっとうな処理系ならlist?でも#fが返るだけでエラーにはならないはず。
178174:2008/11/07(金) 17:20:05
>>177
>procedure?は評価されるとclosure。
不勉強で申し訳ないのですがこの意味がわかりません.
procedure?についての記述はR5RSの3.2章と6.4章にしかないのですが,どちらにも見当たりません
179デフォルトの名無しさん:2008/11/07(金) 17:43:24
(call/cc (lambda (cc) (procedure? cc))) ;=> #t
(call/cc procedure?) ;=> #t

procedure?は(lambda (cc) (procedure? cc))と「同じ」
180デフォルトの名無しさん:2008/11/07(金) 17:57:13
>>177はprocedure?をclosureと説明してるが
初心者への説明としては適切じゃないな。
closureを含めて手続きと呼ぶし、
procedure?はprimitiveかもしれない。
どちらにしろ(procedure? procedure?)は#tを返す。
そもそも「手続き」という訳し方が気に入らない。
関数じゃダメなん?
181デフォルトの名無しさん:2008/11/07(金) 18:03:54
関数 - function
手続き - procedure
クロージャ - closure

1対1対応をつけて、規格の用語法に従ったほうが最終的に間違う可能性が
少なくて済む。
182デフォルトの名無しさん:2008/11/07(金) 18:11:18
>>180
r5rsにprocedureと書かれているものを「関数」と訳すことはオラにはできね。
183デフォルトの名無しさん:2008/11/07(金) 18:18:28
>>178
closureという単語は使わなかった方が良かったかも。
r5rsでは手続き(procedure)と呼んでいるのでこちらを使おう。

procedure?という変数には「与えられた引数が『手続き』であることを調べる手続き」が
束縛されている。
変数procedure?が評価されると評価結果は「手続き」となる。
(lambda () (...))という式も評価されると評価結果は「手続き」となる。
184デフォルトの名無しさん:2008/11/07(金) 21:31:31
クロージャが自由変数の参照を含む関数なら
その対となる物はコンビネータですか?
185デフォルトの名無しさん:2008/11/07(金) 22:14:10
>>183
> procedure?という変数には「与えられた引数が『手続き』であることを調べる手続き」が
> 束縛されている。

procedure?という変数は「与えられた引数が『手続き』であることを調べる手続き」によって束縛されている。

あげあし取りスマヌ
186デフォルトの名無しさん:2008/11/07(金) 23:09:02
手続きつーと副作用込みみたいな気がして気持ち悪いんだよ。
まあ実際そうだけどさ。こんな事言っても最近の奴には判らんかな。

>>181
クロージャは閉包
187デフォルトの名無しさん:2008/11/07(金) 23:14:16
procedure?という識別子は「「与えられた引数が『手続き』であることを調べるプリミティブ手続き」を初期値として収めている場所」に束縛されている。

あげあし取りスマヌ
188デフォルトの名無しさん:2008/11/07(金) 23:17:17
>>184
もしかして「自由変数を一切持たないクロージャがあったならば、それをコンビネータと呼んじゃってもいいのか?」っていう質問なのかな?
189デフォルトの名無しさん:2008/11/07(金) 23:26:41
>>186
副作用という言葉の定義が気持ち悪いな
引数が同じとき戻り値が同じかどうか?
「同じ」の定義は?
190デフォルトの名無しさん:2008/11/07(金) 23:38:25
値を求める以外の事をしたらそれが副作用だろ。
191デフォルトの名無しさん:2008/11/07(金) 23:45:23
第5世代コンピュータってすごかったんだなぁ。
192デフォルトの名無しさん:2008/11/08(土) 03:50:48
本気で言ってる?
193デフォルトの名無しさん:2008/11/08(土) 08:18:08
本気だよ。
194デフォルトの名無しさん:2008/11/08(土) 08:29:34
すごい【凄い】
1ぞっとするほど恐ろしい。非常に気味が悪い。「―い目でにらむ」
2びっくりするほど程度がはなはだしい。大層なものだ。「―い人気」
3(連用形を副詞的に用いて)程度のはなはだしいことを表す。「―く寒い」「―くおもしろい」

195デフォルトの名無しさん:2008/11/08(土) 08:42:54
まぁハードウェアで(マイクロプログラムで)論理操作をやるマシンとしては
すごい。MOPS値とかなー

問題はインテルプロセッサの高速化と廉価化が非常識だったことであってw
196デフォルトの名無しさん:2008/11/08(土) 09:02:13
ICOTは、荘園モデルとかおもしろかったけどね。
OSがやるようなリソース管理をPrologの世界に持ち込んで、
メタ管理できるようにする奴。
www.tulips.tsukuba.ac.jp/pub/dl/e_thesis/ko/sato2003.pdf

ELIS/TAO以来、Lisp界はこういうのないね。
地味な基礎研究だけど面白いのに。
197デフォルトの名無しさん:2008/11/08(土) 12:54:52
竹内先生ってICOTに誘われても断ったみたいだけど
なんで?
198デフォルトの名無しさん:2008/11/08(土) 12:57:13
シグマ計画を実行したのは誰か
それが問題だ
199デフォルトの名無しさん:2008/11/08(土) 17:31:39
全然話題になっていないみたいですが...
LispWorks
が期間限定でディスカウントしていますが誰か買った人いますか?
自分のお小遣いでギリギリ買える値段になってたので申し込んでみました。
http://www.lispworks.com/buy/50-50-special-offer.html
200デフォルトの名無しさん:2008/11/08(土) 19:12:17
commonLispの統合開発環境か。
201デフォルトの名無しさん:2008/11/08(土) 21:04:10
>>197
ご本人に聞けば。そういう伝聞話は。
202184:2008/11/08(土) 21:45:28
>>188
自由変数を持たない関数をクロージャと呼んでいいのか?くらいの質問です
実装によっては環境を閉じ込めてるからそれもアリなのかもしれませんが
自由変数の参照が無い関数はもはやコンビネータなのでは、と思った次第です
203デフォルトの名無しさん:2008/11/08(土) 22:18:21
0個の自由変数を持っていると考えればいいだけでは
204デフォルトの名無しさん:2008/11/08(土) 22:27:01
0個や1個でも多値と呼んでいいのか?
虚部が0でも複素数と呼んでいいのか?

よさそうだな。
205デフォルトの名無しさん:2008/11/08(土) 22:55:44
>虚部が0でも複素数
数値を実数の世界で見るか、複素数の世界で見るかでその答えは決まります。
206デフォルトの名無しさん:2008/11/08(土) 22:56:01
副作用を持たない関数をてつづk
207デフォルトの名無しさん:2008/11/08(土) 22:57:34
>>205
R⊂C
208デフォルトの名無しさん:2008/11/08(土) 23:05:08
>>207
はい。
209デフォルトの名無しさん:2008/11/08(土) 23:15:06
同性関係で攻め側を多値と呼びます
210デフォルトの名無しさん:2008/11/09(日) 01:12:35
ウホッ
211デフォルトの名無しさん:2008/11/09(日) 06:13:23
L:What is (male male)
R:Who knows, but it works very hard.
212デフォルトの名無しさん:2008/11/09(日) 11:28:08
>>196
基礎研究であっても、現実的成果がないと廃れちゃうんだよ。
今やるべきことは、応用を考えることだよ。
Coqで定理証明〜なんてやっていても仕方が無い。
213デフォルトの名無しさん:2008/11/09(日) 12:59:21
Coqで定理証明って応用じゃん!
214デフォルトの名無しさん:2008/11/09(日) 13:10:36
>>212
こういう風潮がある時点で学究活動なんて終わってるな。景気も悪いし、結果、結果ってわめくばかりでどうしょうもないw
215デフォルトの名無しさん:2008/11/09(日) 13:22:10
じゃあ勝間を総理大臣にして日本をGoogle化しようぜ。
216デフォルトの名無しさん:2008/11/09(日) 13:34:54
一億総モサド化だな
217デフォルトの名無しさん:2008/11/09(日) 14:02:06
>>214
ぶっちゃけ、終わってるのはLispなんではw
Lisp界に閉じたようなことばかりで、
他に影響を与えるような新しいことが出てきてない。
218デフォルトの名無しさん:2008/11/09(日) 14:14:47
他への影響?
他言語の設計者達が勝手に受けまくってるよ。今でも。
219デフォルトの名無しさん:2008/11/09(日) 14:18:31
>>217
closure(閉包)が〜、と言っている以上、活動はその世界で
閉じてないといけないからな。
220デフォルトの名無しさん:2008/11/09(日) 14:18:42
それは過去の資産でしょう?
今は新しいことが出てきてない。
221デフォルトの名無しさん:2008/11/09(日) 14:20:23
>>218
だから、相対的にどんどん価値が下がってるんだって。
222デフォルトの名無しさん:2008/11/09(日) 14:23:50
有用な技法を殆ど盗まれちゃったら、Lispなんて単なる括弧の
多い普通の言語に成り下がるんだよ?
223デフォルトの名無しさん:2008/11/09(日) 14:26:28
>>222
LIsp のマクロに対抗できるだけの単純でかつ強力なマクロを持つ言語を
私は知りませんが?

そこでもしかしてC++とか言っちゃうひと?
224デフォルトの名無しさん:2008/11/09(日) 14:34:37
LIsp(藁)使いは帰ってくれ
225デフォルトの名無しさん:2008/11/09(日) 14:34:51
>>223
今現在じゃなくてこれからの話だよ。
それに、そういう強力なマクロ機能を他言語でも実現させてみよう、
と他言語の設計者はがんばれる。けど、Lispは今は何もできてない。
その時点で負けてると思うよ。
当たり前の話だが、いつか食い尽くされる。

それに、廃れているだけで、機構自体はあるかもしれないよ。
226デフォルトの名無しさん:2008/11/09(日) 14:54:36
>>225
がんばってもがんばっても追いつけないものに対して、
がんばれるほうがすぐれている、と判断するんですね。

面白い評価のしかたです。
227デフォルトの名無しさん:2008/11/09(日) 15:00:14
他の言語でLispと同等のマクロを実現したらLispになっちゃうw
228デフォルトの名無しさん:2008/11/09(日) 15:00:25
>>222
Lispの一番「強い」ところがその括弧と(正確にはS式と)不可分だから、
「括弧の多い普通の言語」という成り下がり方はしないだろうな。

Lispが「普通の言語」になる時(最も「強い」部分がLisp固有のものではなくなる時)は、
他の言語も括弧だらけになってる時だから、Lispを表現するのに「括弧の多い」という形容は
もはや使われていないはず。
229デフォルトの名無しさん:2008/11/09(日) 15:03:20
>>226
大概の問題は、工学的手法で解決できるものだよ。日本の得意分野じゃん。
完全な再現はできないかもしれないけれど、その過程で新たな技法が
見つかることもよくある。
最悪、達成できなくても、それなりの成果ってでるよ。
何もしなかったら何もでないけど。
230デフォルトの名無しさん:2008/11/09(日) 15:09:53
>>222
マクロよりはちょっとだけ落ちるけど、
名前呼びができる言語はLispに肉薄してると思う。
まあ、Lispが最強なことには変わりないが。
231デフォルトの名無しさん:2008/11/09(日) 15:22:10
One significant application for LISP has been as a proof by example that most newer languages,
such as COBOL and Ada, are full of unnecessary crocks.
When the Right Thing has already been done once, there is no justification
for bogosity in newer languages.

COBOLとかAdaの時代にも散々言われていたことを蒸し返してるだけだろ。
比較対象がJavaとかPythonに変わっただけだなw
232デフォルトの名無しさん:2008/11/09(日) 15:22:25
名前呼びって Algol の Call by name ?
Algol 以外にメジャーな言語で Call by name の(ある)ものってあったっけ?
233デフォルトの名無しさん:2008/11/09(日) 15:24:18
非S式に(Lisp的な)マクロを積もうってのは、
DylanとかBooとかで試みられていたような
あと最近だと、高校生が設計したとかで話題になってたCyanとかもか

こういうアプローチに利点があるとすれば、可読性かなあ
上で出てたShibuya.lispの動画でL4uの作者が言ってたが、
S式はフラット過ぎて人間に読みづらいという感覚はアリだと思う
(もちろんフラットさこそが柔軟性を生んでいるわけだが)
234デフォルトの名無しさん:2008/11/09(日) 15:28:24
遅延評価は利用されない式を評価しないようにはできるけど
利用されるけど評価されないという式を扱えない。
名前呼び+α変換もプログラマブル、という機構はその欠点はなくせるけど
式の変形は人間が行わなければいけない。
235デフォルトの名無しさん:2008/11/09(日) 15:38:05
もうLispは死んだ。括弧のないS式が発明されて死んだ
それを人はPythonと呼ぶ。NorvigもPython使いに転向した。
MSもGoogleもAppleもNASAもみんなPythonを使ってる。まあお前らも
はやく目覚めるといいね、と。
236デフォルトの名無しさん:2008/11/09(日) 15:41:58
大企業がみんなにやらせる言語としては、Pythonのほうが良いと思うよ。
それはこのスレの多くが思ってることだろう。
ユーザーのレベルを問わない武器としてLispを勧める奴は、今も昔もあんまりいないでしょ?
237デフォルトの名無しさん:2008/11/09(日) 15:42:50
個人的には、最近あんまりLispコードに「Lispならではの読みにくさ」を感じなくなってきた。
良いんだか悪いんだかわからないけど・・・。

巷で言われる「Lispコードの読みにくさ」を全否定する気はもちろん無いけど、でも
閉じ括弧の束を、何の意味も無いのにわざわざ見つめて「うわっ、括弧ばっか」とか言ってる
レベルの言説も多いから(見る必要が無いから、少しでも視覚的に存在を小さくすべく纏めてるのにね)、
いちいち真に受ける気も無いんだよなぁ、あんまり。
238デフォルトの名無しさん:2008/11/09(日) 15:45:22
でもLispって使えるようになって便利さがわかってきても
やっぱり括弧の対応関係のバグには悩まされるのが現実。
239デフォルトの名無しさん:2008/11/09(日) 15:46:35
括弧の絶対数が多くの場合に多いのは事実だと思うが。
(なんていうかな、おなじ項数の式になったとして。
 より少ない項数で書けるかどうかの比較も絡むので
 これ以上は立ち入ると危険。)
240デフォルトの名無しさん:2008/11/09(日) 15:47:23
オールドタイプの乗る量産機にはインコム載せときゃいい
ニュータイプ専用機にはサイコミュ載せときゃいい
オールドタイプにサイコミュ機乗せたり
ニュータイプに量産機乗せたりする必要はない
241デフォルトの名無しさん:2008/11/09(日) 15:50:23
>>240
そうやって、どんどん廃れていってるわけだ。
242デフォルトの名無しさん:2008/11/09(日) 15:51:34
エディタ支援の無い環境で作業しろと言われたら、俄然苦しくなる。
あと、インデント無しで作業しろ、なんてことをもし言われたら(ねーよw)、やっぱり滅茶苦茶苦しい。

「エディタ支援とインデントに期待できない状況」なるものを仮に想定するなら、
Lispの扱いにくさは最悪に近いと思う。確かに。

でも現実には、どっちもまず間違いなく存在を期待していいから、
そんなに困らないというか、別段他言語との差を感じないというのが個人的な現状だなぁ。
243デフォルトの名無しさん:2008/11/09(日) 15:53:33
mのないviで書くときは手で字下げしてるし
字下げがないと読みにくいのは他の言語も一緒
字下げがない場合は括弧が多いほうが読み易い自分はマイノリティなのかな
244デフォルトの名無しさん:2008/11/09(日) 15:54:27
>>241
80年代のレスならそれで正しいと思うけど、
21世紀も8年が過ぎようという今「どんどん廃れていってる」ってのは、
一体いつの普及度と今を比べてるのか、よーわからん表現だと思う。
245デフォルトの名無しさん:2008/11/09(日) 15:56:40
>>235
> MSもGoogleもAppleもNASAもみんなPythonを使ってる。まあお前らも
> はやく目覚めるといいね、と。

Pythonでできる仕事はPythonでやればいい、
PCLの例題をPythonで書き換えた本を、
出せるもんなら出してみろってだけ。
246デフォルトの名無しさん:2008/11/09(日) 15:57:29
あ、エディタ支援って括弧表示のほうか
247デフォルトの名無しさん:2008/11/09(日) 15:59:57
構文強調表示もね。w
248デフォルトの名無しさん:2008/11/09(日) 16:11:08
さいきんSchemeの勉強をはじめたけど
Emacsなしではつらいと思います
普段はvim使ってるんですが

Pythonをカッコの無いS式と呼ぶのは、なんか物凄く違う気がしますよ
Pythonのコードとデータは別物だし
コードも式と文が分かれているし
Pythonのリストはベクタだし
マクロもシンボルもないし
末尾再帰の最適化もしません

Pythonの強みは、全然違うポイントにあると思います
249デフォルトの名無しさん:2008/11/09(日) 16:14:28
>>245
Pythonはあらゆる仕事ができるし、できない仕事はやる価値がない。
PCL?未だにPracticalとか言ってる時点で終わってる。
 Pythonはすべてが実務だ。
250デフォルトの名無しさん:2008/11/09(日) 16:19:10
>>249
Peter Norvig「Lisp プログラマのための Python 入門」より
> 12. Python にはマクロがない。 Python はプログラムの抽象的な構文木に
> アクセスする機能を もっているが、これはなにもびっくりするようなことではない。
> このモジュールの長所は理解するのが簡単だということで、 5行ほどのコードを
> 使って、5分かそこらで次のようなものを手にすることができた:
>
> >>> parse("2 + 2")
> ['eval_input', ['testlist', ['test', ['and_test', ['not_test', ['comparison',
> ['expr', ['xor_expr', ['and_expr', ['shift_expr', ['arith_expr', ['term',
> ['factor', ['power', ['atom', [2, '2']]]]], [14, '+'], ['term', ['factor',
> ['power', ['atom', [2, '2']]]]]]]]]]]]]]], [4, ''], [0, '']]
>
> この結果にはかなりがっかりした。Lisp なら、これと同等の構文木は (+ 2 2) である。
> この構文木なら誰にでも使えるが、 Python のこんな構文木をいじれるのは本当の
> エキスパートだけだろう。
(以下略)
251l246227.ppp.asahi-net.or.jp :2008/11/09(日) 16:21:13
糞なMSやアホなGoogleや詐欺なAppleや貧乏なNASAが使ってる言語なんか
使いたくないな
252デフォルトの名無しさん:2008/11/09(日) 16:29:33
navi2chお?
253デフォルトの名無しさん:2008/11/09(日) 16:40:14
Emacs使ってる奴が多いってことかw
254デフォルトの名無しさん:2008/11/09(日) 16:41:17
emacs 使わずに lisp なんて触れない。
255デフォルトの名無しさん:2008/11/09(日) 16:42:52
専ブラのバージョンアップもしてない情報弱者様登場!
256デフォルトの名無しさん:2008/11/09(日) 16:45:47
>>254
pgはvimを使ってる
257174:2008/11/09(日) 17:46:20
どうも議論が高度な話にすりかわってしまったようですので質問しなおします.
>p.31の最後の例 (call/cc procedure?) => #t の意味がわかりません.
call/ccのはたらきは「continuatoinを生成すること」だと理解していましたので,
それがなぜこのような評価結果につながるのかがわからないのです.
これまで見たcontinuationの使い方はたとえば
(define cont #f)
(+ 20 (call/cc (lambda (k) (set! cont k) 30))) ;=>50 ;continuation生成
(cont 70) ;=> 90 ;continuation再開
のようなものばかりで,質問の例の使い方をこの用法に対応させて考えることができません.
なにとぞよろしくご指導のほどお願いします.
258デフォルトの名無しさん:2008/11/09(日) 17:51:03
(define cont #f)
(call/cc (lambda (k) (set! cont k) 30))
(procedure? cont)




259デフォルトの名無しさん:2008/11/09(日) 17:58:52
「継続も手続きの一種だから」でいいのかな?
260デフォルトの名無しさん:2008/11/09(日) 18:15:55
多くの人が必要としているのは
拡張ライブラリ。電池。いわゆるバッテリー。
261デフォルトの名無しさん:2008/11/09(日) 18:17:48
apply出来るからね。
262デフォルトの名無しさん:2008/11/09(日) 18:35:45
R6RS のマクロとライブラリの関係で炎上しているらしいのだが、意味がよくわからん。
http://groups.google.co.jp/group/comp.lang.scheme/browse_thread/thread/8927053ede92fd27/d055da2e0676952e
誰か簡単な説明をたのむ。
263デフォルトの名無しさん:2008/11/09(日) 18:40:20
グレアムの本で読んだと思うけど、世紀の大発明セグウェイの
制御プログラムってPythonで書かれてるらしいね。
264デフォルトの名無しさん:2008/11/09(日) 18:41:40
usenet の comp.lang.scheme っていうだけで敬遠する
265174:2008/11/09(日) 19:01:18
>>258>>259
そうか!call/ccはcontinuationを生成するだけではなくて,その作ったcontinuationを
引数の手続きに「渡す」ところまでやるわけですね!R5RSのp.33左下にある
The procedure call/cc packages up the current continuation as an
"escape procedure" AND PASSES IT AS AN ARGUMENT TO proc.
の意味がようやくわかりました. 今まで全く理解できていませんでした. お教えいただきましてありがとうございました!
266デフォルトの名無しさん:2008/11/09(日) 21:11:27
>>263
グレアムが書いてたのは、ViaWeb同僚のトレバーが作った「セグウェイもどき」の話。

267デフォルトの名無しさん:2008/11/09(日) 22:48:06
loopマクロみたいにpythonマクロとかrubyマクロとかperlマクロを書けばいいじゃない
268デフォルトの名無しさん:2008/11/09(日) 23:02:07
なんだもどきか、、早とちりだった。
()の対応見直してから寝ます。
269デフォルトの名無しさん:2008/11/09(日) 23:42:27
call/ccが引数に渡す継続手続きは普通の手続きとは違う。
末尾コンテキスト以外で呼び出しても
あたかも末尾呼び出しされたかのように返ってこない。
これさえなければ参照透明性を侵さないと思うのですが。
末尾コンテキスト以外での継続の呼び出しなんてトリッキーなんだから
普通の手続きとして実装すればいいのに。
270デフォルトの名無しさん:2008/11/09(日) 23:45:33
>>267
そこで、やさしいCプログラミングですよ
ttp://www.pro.or.jp/~fuji/computerbooks/c/c.modula2.html
271デフォルトの名無しさん:2008/11/10(月) 00:31:58
vallink っていうフリーのリンカがマジでマクロ使いまくりで Pascal っぽい雰囲気になってたのを思い出した。
272デフォルトの名無しさん:2008/11/10(月) 01:08:02
RLISP(笑)
273デフォルトの名無しさん:2008/11/10(月) 02:24:20
>>270
藤原さんは相変わらず文章が(ry
274デフォルトの名無しさん:2008/11/10(月) 02:44:35
久しぶりに読んだが、こんなに面白い読み物だったのかw
いろんな意味で涙が出てくる
275デフォルトの名無しさん:2008/11/10(月) 08:11:49
nPnのpermutationを求めるものを作ろうと色々探している途中でwebで拾ったS式です
これってrotateを一般化した奴だと思うんですが、
俗には何っていうものなんでしょうか?
map restとかで検索してもでてこないんで
あとこのS式を導き出す過程みたいなのも知りたいです

(define (map/rest f l acc res)
(if (null? l)
res
(map/rest f (cdr l) (cons (car l) acc)
(cons (f (car l) (append acc (cdr l))) res))))

これを使ってpermutationはこう書けるようです
(define (permutations l)
(cond
[(null? l) '()]
[(null? (cdr l)) (list l)]
[else (concatenate!
(map/rest (lambda (elem rest)
(map (lambda (result)
(cons elem result)) (permutations rest))) l '() '()))]))
276デフォルトの名無しさん:2008/11/10(月) 08:28:38
累積引数(res)を使った末尾再帰化の典型で、
特に名前はないと思う。
277デフォルトの名無しさん:2008/11/10(月) 09:33:18
>>269
末尾コンテキストじゃないとこで継続手続きを呼べなかったらcall/ccの意味が無くなるぞ
(全部CPSで書けば済むことだから)
278デフォルトの名無しさん:2008/11/10(月) 11:23:21
>>271
あれを読もうとしたことがあるやつが俺以外にもいるとはw
あと有名なのが元祖 B Shell とか。IOCCC を開催する動機のひとつになったともいう。
279デフォルトの名無しさん:2008/11/10(月) 11:35:11
280デフォルトの名無しさん:2008/11/10(月) 11:53:48
>>269
末尾以外でも使えないと大域脱出のときに困るのでは?
281デフォルトの名無しさん:2008/11/10(月) 12:57:18
戻ってきたら継続じゃないだろうそれ……
282デフォルトの名無しさん:2008/11/10(月) 15:58:52
Littleで質問です。
9章のY-Combimatorの説明は大体わかったんだけど、
(lambda (waha)
 (lambda .(a lat) ....(waha ....)....))
で再帰できないみたい。
なんか間違ってる?
283デフォルトの名無しさん:2008/11/10(月) 16:02:02
突っ込まれるまえに
> .(a lat)
先頭のドットはミスでつ。入りません。
284デフォルトの名無しさん:2008/11/10(月) 18:29:45
>>282
誰がapplyしてくれてるの?

>>280
でもそれ副作用だし
>>281
末尾コンテクスト以外で戻ってこなかったら手続きじゃないだろうそれ……
285デフォルトの名無しさん:2008/11/10(月) 19:05:00
>>282
>なんか間違ってる?
大体わかってるみたいだけど、完全にわかってるわけではないようだ。がんがれ!



286デフォルトの名無しさん:2008/11/10(月) 19:08:30
> (lambda (waha)
ま た お 前 か

がんがれ
287デフォルトの名無しさん:2008/11/10(月) 20:16:08
>>269
> 普通の手続きとして実装すればいいのに。

何言ってるのこの人?
天然なの?釣りなの?
288デフォルトの名無しさん:2008/11/10(月) 20:23:30
釣りじゃないです。
ttp://practical-scheme.net/wiliki/wiliki2.cgi?Scheme%3Acall%2Fcc%E3%81A8%E5%89%AF%E4%BD%9C%E7%94%A8
を見て以来
継続オブジェクトを純粋な手続きにすれば参照透明性が保たれるのではないか?と考えているのです。
手続きと違うものなのにprocedure?を満たすことには違和感を覚えます。
289デフォルトの名無しさん:2008/11/10(月) 20:24:26
ああURL化けしちゃった
WilikiのScheme:call/ccと副作用という項です
290デフォルトの名無しさん:2008/11/10(月) 20:41:06
手続きにしたいなら自分で作ればいいじゃん
(define(手続き)(call/cc(lambda(c)c)))
ちなみに継続は副作用じゃないよ
そこにあって当然のものを持ちまわれるようにしただけ
291デフォルトの名無しさん:2008/11/10(月) 20:47:25
継続は副作用じゃないけど
call/ccは副作用なんです
292デフォルトの名無しさん:2008/11/10(月) 20:51:46
>>288
> 手続きと違うものなのにprocedure?を満たすことには違和感を覚えます。

天然かよ。
293デフォルトの名無しさん:2008/11/10(月) 20:53:07
アホの子のトップレベル> (define procedure-or-continuation? procedure?)
294デフォルトの名無しさん:2008/11/10(月) 20:53:17
R5RSの6.4に
> 脱出手続きとは、もし後でこれを呼び出すと、
> その時たとえどんな継続が有効であっても捨て去り、
> そのかわりに脱出手続きが作られたときに有効だった継続を使うことになる> Scheme手続きである。
とありますが
「普通の」Scheme手続きなら「継続を捨て去」ることはしないわけで
ここが副作用の根本だと思うんです。
295デフォルトの名無しさん:2008/11/10(月) 20:56:21
>>294の副作用の定義がおかしいのは判った
296デフォルトの名無しさん:2008/11/10(月) 20:58:47
>>295
どうおかしいので?
じゃあcall/ccがもたらす「継続オブジェクト」が参照透明性を破る原因は何なのですか?
297デフォルトの名無しさん:2008/11/10(月) 20:59:14
とんでもなく大きな勘違いをしているようだ
298デフォルトの名無しさん:2008/11/10(月) 20:59:21
「純粋な手続き」ってなにさ
299デフォルトの名無しさん:2008/11/10(月) 20:59:49
continuation passing style で考えると、もっと素直な気持ちになれるよ。
300デフォルトの名無しさん:2008/11/10(月) 21:02:29
call/ccを使うと、副作用が起りうる。
↓取りうる選択肢
・副作用を容認する。
・call/ccを使わずにpureに生きる。

斜めな人
・継続を手続きにすればいい。
( ゚д゚)ポカーン
301デフォルトの名無しさん:2008/11/10(月) 21:03:16
>>298
呼んだあとに帰ってくる手続き、という意味です。
不適切な表現だったかもしれません。

>>299
CPSで継続にgo toしてるように見えるのは
もともとその呼び出しの後に継続がないからgo toするように最適化されるだけです。
302デフォルトの名無しさん:2008/11/10(月) 21:04:15
継続オブジェクトをを「普通の」手続きで実装する。

・末尾文脈で呼び出せば脱出に使える。
・副作用を起こさない。
303デフォルトの名無しさん:2008/11/10(月) 21:11:59
おまえ副作用って聞いて、バファリンとか思い浮かべてない?
おれらはそんなやさしくねえぞ
304デフォルトの名無しさん:2008/11/10(月) 21:12:17
>>302
> ・末尾文脈で呼び出せば脱出に使える。

末尾なら脱出じゃねーしw
305デフォルトの名無しさん:2008/11/10(月) 21:28:08
「call/cc理解すんのって、頭痛いなァー」

      「頭痛い」
        ↓
      バファリン → やさしさ
        ↓ 
      副作用


          |
       \ _ /  ピコーン!
       ― (ω) ―
          lヨ
         ∧ ∧
        (・∀ ・)   「call/ccって副作用?」
        ノ(  )ヽ
         <  >

このスレは半分「やさしさ」でできています
306デフォルトの名無しさん:2008/11/10(月) 21:46:19
call/ccに副作用があるってのは私だけの主張じゃありません
Wilikiの項を読んでください。
私の勘違いや不勉強があれば指摘してくださるとうれしいです。
>>304
問答無用でジャンプする「フルスペックの」脱出はできませんが
末尾文脈にも分岐が存在しえる以上「ある種の」脱出ができると考えられます。
307デフォルトの名無しさん:2008/11/10(月) 21:50:45
ただの末尾ジャンプやんw
308デフォルトの名無しさん:2008/11/10(月) 22:14:18
>>306
とりあえず、副作用なしで、
末尾ジャンプよりもリッチな意味を持ち、
継続と同等のことができるものを提示しなよ。
具体的な形で。

ちなみに方向は逆の話だが面白かった。
Flatt, Yu, Findler, Felleisen
Adding Delimited and Composable Control to a Production Programming Environment
309デフォルトの名無しさん:2008/11/10(月) 22:15:17
戻ってくる継続というとyield returnですね。
310デフォルトの名無しさん:2008/11/10(月) 23:11:33
>>269
3行の短かい答え:
発想は悪くない。
shift/resetで
ぐぐれ。


長い答え:
継続が戻ってくれば副作用無くなるというのはその通り。良い発想をしている。

しかし、継続から戻ってくるには継続が終わる必要があるが、継続の終わりとはどこかという問題がある。
REPLの終わりか、プロセスの終わりか、OSの終了か、世界の終わりか。

そこで、「ここまで来たら継続の終わり」という演算子を定めてやる。
その演算子をresetと呼ぶ。で、resetまでの継続を取り出す演算子をcall/ccとは区別してshiftと呼ぶ。
すると、shiftが捉える継続(を関数にしたもの)は副作用を持たない純粋な関数になる。
; shift以外には副作用はないものとする

例:
(+
(reset
(+ (shift (lambda (c) (+ (c 1) (c 2))))
3))
4)

ここで、cには (lambda (x) (+ x 3)) という関数が入る。resetの外の+4は入らない。
(c 1) は 4、(c 2) は 5。という風に、普通の関数と同じように使える。
311デフォルトの名無しさん:2008/11/10(月) 23:12:35
あれは継続使って実装できるコルーチンだわな。
312デフォルトの名無しさん:2008/11/11(火) 00:22:55
>>311
!?

コルーチンきれい!
ふしぎ!!
313デフォルトの名無しさん:2008/11/11(火) 00:32:59
継続の典型例を4つほど紹介汁。叩台にドゾ。
http://codepad.org/T0Di1QCK
314デフォルトの名無しさん:2008/11/11(火) 02:00:35
((Y
 (lambda (waha-tan)
  (lambda (waha musu)
  (......... (waha-tan .....) .....))))
'tuna '(tuna octpas cram))
みたいにしたら、argumentは1つしか要求してないと叱られ
言われた通りに1つ、
((Y (jambda........ )) 'tuna)
にすると、私は2つ必要なのにあなたは1つしかくれない......
って泣きつかれます。

> またおまえか
別の無名さんでつ
315デフォルトの名無しさん:2008/11/11(火) 03:04:31
>>282, >>314
「....」で省略しないで全部書け。コピペ出来るだろ?
長いなら>>313みたいにやれ。

>>314の最初の例ではYに関数以外に引数が2つ必要だからY2を使う。
あとは自分で考えろ。
(define Y2
(lambda (M)
((lambda (future)
(M (lambda (arg1 arg2)
((future future) arg1 arg2))))
(lambda (future)
(M (lambda (arg1 arg2)
((future future) arg1 arg2)))))))
316デフォルトの名無しさん:2008/11/11(火) 03:26:54
317デフォルトの名無しさん:2008/11/11(火) 07:58:22
>>310
上の他のレスでもあることだけれども、継続と継続関数を混同しているね。
だから「継続」が「終わる」とか「戻る」とか言葉使いがちょっと変。話題に合
わせてわざとやっているのかな?
318デフォルトの名無しさん:2008/11/11(火) 10:00:08
>>315, >>316>>282, >>314風に書くとこんな感じだ。
http://codepad.org/o5QUidyU

319デフォルトの名無しさん:2008/11/11(火) 10:00:51
>>317
確かに「継続が戻る」と言われても混乱するかも。
関係ないけど「funcallを呼び出す」って??みたいな。

Common Lispなら (funcall ...) と (return-from ...) の違いは明確だから
混同するやつはいない。
Schemeではfuncallもreturn-fromも省略された形で、見た目では区別できなくなった。
320デフォルトの名無しさん:2008/11/11(火) 10:19:33
継続は手続きである。
手続きは戻るものである。
故に継続は戻る物である。
継続が戻らないとすれば
継続は手続きではない、または
手続きは戻るとは限らない。
321デフォルトの名無しさん:2008/11/11(火) 10:32:41
>>318より簡単なmultiremberでY2を使う例:
http://codepad.org/OY5ekg1g

((Y2
 (lambda (waha-tan)
  (lambda (waha musu)
   (cond
    ((null? musu) (quote ()))
    ((eq? (car musu) waha) (waha-tan waha (cdr musu)))
    (else (cons (car musu) (waha-tan waha (cdr musu))))))))
 'tuna '(tuna octopus cram)) ; octpasは綴りが間違ってるw
322デフォルトの名無しさん:2008/11/11(火) 10:51:55
通常のmultirember

(define multirember
 (lambda (waha musu)
  (cond
   ((null? musu) (quote ()))
   ((eq? (car musu) waha) (multirember waha (cdr musu)))
   (else (cons (car musu) (multirember waha (cdr musu)))))))

(multirember 'tuna '(tuna octopus cram))
323デフォルトの名無しさん:2008/11/11(火) 10:53:53
>>320
> 継続は手続きである。

仕様を読みましょう。
Continuationとescape procedureは別。
Schemeで1st class objectなのは、
call/ccの作るescape procedureであってcontinuationじゃない。

Escape procedureは、call/ccした時点のcontinuationへの
遷移と値の受け渡しを担ってる。
表示的意味論での継続は、意味関数で意味付けられていて、
それとほぼ同型。CPS風の意味論で顕著。
324デフォルトの名無しさん:2008/11/11(火) 11:01:31
>>321, >>322を書き換えて名前空間を汚さないようにすると:
http://codepad.org/QpVFT6bC
325デフォルトの名無しさん:2008/11/11(火) 11:44:11
>>313の継続の例に追加。Amb演算子(choose)。
http://codepad.org/FJTpKfWe
326デフォルトの名無しさん:2008/11/11(火) 11:59:03
>>323
R5RSの1.1にはコンティニュエーションは"first class" statusとあります。
ただ
> オブジェクトには手続きとコンティニュエーションが含まれる。
とあるので暗に手続きとcontinuationは別ものであるように書かれています。
脱出手続きはScheme手続きであるという表現がありますので
仰るように脱出手続きとコンティニュエーションは別と考えられます。
そうなると"first class" statusにあるコンティニュエーションはどのように得られるのでしょうか?
ただ単に1章では脱出手続きとコンティニュエーションを意図的に混同して書かれただけなのでしょうか?
327デフォルトの名無しさん:2008/11/11(火) 13:44:29
R6RSではその``first-class'' status(第一級の扱い)の部分はそのままで、

> Scheme was the first widely used programming language
> to embrace first-class escape procedures

って文章がINTRO.に入ってるね。
込み入った話でなければ、それほど使い分ける必要はないかと。
論文でも"invoke a continuation"って書いてあることあるし。
328デフォルトの名無しさん:2008/11/11(火) 13:45:49
あ、勉強中の人は神経質なくらい使い分けた方が、混乱しないと思います。
念のため。
329デフォルトの名無しさん:2008/11/11(火) 13:56:38
>>327
その文言は"-"を除いてR5RSにもありますね
もっとしっかり読み込んでみます
330269,306他:2008/11/11(火) 14:42:52
>>308>>310
ありがとうございます、読んでみます。

手続きという定義があいまいなものを(私が勝手に)解釈してしまっていたようです。
関数:引数を受け取り、値を返す。呼ばれたら戻ってくるもの。参照透明。
手続き:引数を受け取る。値を返すこともある。戻ってこないこともある。applyできるものの総称。副作用を伴うこともある。
くらいにとらえたらよかったのかもしれません。
RnRSを作った方たちがあえて関数ではなく手続きとしたのもここらへんの問題もあったのかもしれませんね。
331デフォルトの名無しさん:2008/11/11(火) 15:44:27
2スレ前にも話題になったGuy Steele御大による「脱出手続き(笑)」
http://codepad.org/phUFb8oU
332デフォルトの名無しさん:2008/11/11(火) 17:29:41
全角スペース!
333デフォルトの名無しさん:2008/11/11(火) 18:26:51
315他のみなさん有難うございます。
携帯からなので貼っていただいたcodepadはまだ見れてません。
引き数が2のときは別のY2が必要ということですね。
変形すると
(define Y2
 (lambda (M)
  ((lambda (F) (F F))
  (lambda (future)
   (M (lambda (arg1 arg2)
    ((future future) arg1 arg2)))))))
;携帯なのでインデントがおかしいかと思いますが。
LittleのYと見比べて納得しました。
ただし315の形までの導出はまだです。
本と同じようにして出来るのかな…
やってみようと思います。
有難う御座いました。
334デフォルトの名無しさん:2008/11/11(火) 20:28:53
>>331
GOTO文の正体はcall/ccとretrecってことなのかな。
トップレベルの時はretrecの代わりにdefineで名前を付けてやるのかな?
335デフォルトの名無しさん:2008/11/11(火) 23:04:02
ただのジャンプに正体も糞もあるかよ
336デフォルトの名無しさん:2008/11/12(水) 13:38:54
C言語脳には、グローバルな、サブルーチンコールでないジャンプという
プリミティブは存在しないのです。
337デフォルトの名無しさん:2008/11/12(水) 14:44:59
>>334
つ 表示的意味論
338デフォルトの名無しさん:2008/11/12(水) 16:48:23
しばらく来ないうちに>>335,>>336みたいなガラの悪いのが住み着いてるな。
これじゃLispの評判が悪いわけだ
339デフォルトの名無しさん:2008/11/12(水) 16:51:37
>>336
つ __attribute__ ((noreturn));
340デフォルトの名無しさん:2008/11/12(水) 17:58:25
>>338
もし本当にこの程度のレスが「ガラが悪い」と特筆するに値するなら、
それはLispスレが異常に友好的だってことで、2行目にはまったく繋がらないよ。

少しでいいから頭使って絡んでくれ。
341デフォルトの名無しさん:2008/11/12(水) 18:08:10
おかしな人は頭使うほどおかしな方へすっ飛んでくぞ。
342デフォルトの名無しさん:2008/11/12(水) 18:55:21
という訳でMITのトイレにやっときたのだ。
343デフォルトの名無しさん:2008/11/12(水) 19:01:01
遅かったじゃないかw
344デフォルトの名無しさん:2008/11/12(水) 19:05:58
しーましェーン!
345デフォルトの名無しさん:2008/11/12(水) 19:29:56
たしかに昔は>>341-344みたいな便所の落書きはなかったよな。
346デフォルトの名無しさん:2008/11/12(水) 20:06:11
それでも雰囲気良い方だよね。板全体で見たら。
347デフォルトの名無しさん:2008/11/12(水) 20:22:46
ある種の頭の良さと性格の悪さは比例するんじゃないか
とかねがね思っているのだが。
仮にそれが正しいとしましょう。
Lisperは頭良い人の割合が多いから(マジで?!)
そりゃイヤミな書き込みもあるだろう。
それでもそんなに言うほど空気悪くないのは
頭が良いだけではなく悟りを開いた人が多いから(マジで?)。
気になる人はストレス溜めておられるのでは。
348デフォルトの名無しさん:2008/11/12(水) 22:07:00
頭が良いなら他の言語も使うし、第二言語なら執着もしないだろうな
どうせお前らは第一言語を人に教えたくないんだろ
349デフォルトの名無しさん:2008/11/12(水) 22:39:58
性格悪いっていうか、タイミングが悪いんじゃないか?
350デフォルトの名無しさん:2008/11/12(水) 23:53:09
>>347
・頭の悪い人は妬みやすい。
・Lispスレは頭の人が結構いる。
という仮定でも、
・Lispスレはイヤミな書込みが多い
と思う人が多くなるぞ。

この書き込みはイヤミじゃないぞ。
俺がそう思ってないし、
俺は頭良くないから、妬むでそう誤解する奴もいない。
351デフォルトの名無しさん:2008/11/13(木) 00:24:02
Gauchebox-0.8.14-box1 がいつのまにかリリースされてたけど…。
拡張がぜんぜん入ってないんじゃあんまりメリットない気もする。
あくまで入門者むけのセットって感じなのかな。
コンセプトがイマイチはっきりしない。
352デフォルトの名無しさん:2008/11/13(木) 00:31:39
むしろ入門者以外のどんな人間が使うと思ったのか聞きたい。
353デフォルトの名無しさん:2008/11/13(木) 01:00:40
初心者向けと言ってもPLTみたいにはデバッグ出来ないんでしょ?
354デフォルトの名無しさん:2008/11/13(木) 01:29:51
Gauche自体にデバッグ用の機能が欠けているから仕方がない。
デバッグ機能の強化は1.0以降の目標、と開発者が明言してる。

あと、Emacs辺り使うと簡単に編集と評価の繰り返しができるから、
デバッグ出力の追加とか、関数や式単位の評価とか凄い楽にできるし、
デバッガ無くてもあんまり困らない、ってのもあると思う。
355デフォルトの名無しさん:2008/11/13(木) 02:56:29
んーでも真初心者のぽっくんはPLTの方が良いお。
1.0になったら使うかもしれないけど。
356デフォルトの名無しさん:2008/11/13(木) 03:01:34
Windows 環境 (mingw+msys) で Maeve を動かしてみた。 (多少の修正は必要だったけど)
一応 example として用意されてる3つはコンパイルできてちゃんと動いた。
まだ性能を評価できる段階ではないけど、動くモノが出てきたってことで注目株だと思う。
気合いの入った最適化をする (予定?) みたいだし、期待できるかも。
357デフォルトの名無しさん:2008/11/13(木) 11:42:54
jacalに自前関数追加したいときってどうすればいいんだろう
maximaには解説結構あるけどjacalには見つけられない

a:2;
(aに2を代入)
してからlisp層にいって
qed;

lisp上で変数aにアクセスするにはどうすればいいんだろう
358デフォルトの名無しさん:2008/11/13(木) 12:06:33
loadすれば?
359357:2008/11/13(木) 15:00:17
maximaの場合
a:2;
to_lisp();
> (print $a)
2

maximaの変数aはlispで$aになる
という変換があるけど
jacalでどんな変換になってるかの資料をみつけられないのです
360デフォルトの名無しさん:2008/11/13(木) 20:02:31
ソース読め。sexp.scmなど。
361デフォルトの名無しさん:2008/11/13(木) 20:54:35
>>354
私はすごい困っているんで、どうにかして欲しいです。。。
特にrun, break, watchがしたくて仕方が無い。
362デフォルトの名無しさん:2008/11/14(金) 00:32:53
>>361
こっちに言われても(´・ω・`)

参考までに、Gaucheの開発者が、デバッグのスタイルについて言及してる文章↓

ttp://practical-scheme.net/wiliki/wiliki.cgi?Scheme%3a%E5%88%9D%E5%BF%83%E8%80%85%E3%81%AE%E8%B3%AA%E5%95%8F%E7%AE%B1#H-1frlpc5

俺も同じ感じで、関数内関数とかも多用してコード細切れにして、
ちょこちょこデバッグプリント突っ込んで関数単位でテストしてる。

それと、別にPLTでもいいじゃない。両方使うけど、PLTも好きだ。
やっぱりIDEは使わないんで、デバッガの良さは語れないけども、
色々頑張ってる処理系だとは思う。
363デフォルトの名無しさん:2008/11/14(金) 00:40:28
と、書いてて思ったんだが、デバッガ欲しい人たちって、
EmacsでM-x run-schemeとか使ってる?

俺もあれ知るまでデバッグ含めて色々しんどかったんだが、
あれを知って極楽浄土モードに突入した。
364デフォルトの名無しさん:2008/11/14(金) 01:12:17
どうでもぃぃけど361はぽっくんではないぉ。
PLTは頑張りすぎで時々暴走モードに突入するお?
やっぱりガウシェに頑張って欲しいお。
寄付金とかは募ってるんですかお?
365デフォルトの名無しさん:2008/11/14(金) 01:22:22
>>363
もちろん使ってるけど、最初にオブジェクトを作って
それを処理していくようなプログラムの場合、
run-schemeを行うためにはダミーオブジェクトを作る必要がある。
それが簡単に作れるものならいいけど、例えば1000行程度のファイルをパースして得られるような
オブジェクトの場合、ダミーを作るのは簡単じゃない。
データが複雑になってきた場合のみ、発現するようなバグだと死ねる。

他にも、呼ばれているはずの関数がなぜか呼ばれてないのでその原因を調べたい場合は、
ステップ実行していけばすぐに分かるのに
デバッガが無いがためにいちいち途中経過を出力したり、
コメントを使って原因を特定する必要がある。
なぜか無限ループに陥ってる場合でも、ステップ実行&ブレイクができれば一発で原因が分かる。
366357:2008/11/14(金) 06:22:03
>>360
(define (symdef-lookup sym hdns)
...
あたりで対応する変数を探してるのかな?

自前のscheme programからjacalの機能使うのは難しそう・・・
367デフォルトの名無しさん:2008/11/14(金) 06:22:54
SLIBに簡単な行列計算はありますが

特異値分解とかコレスキー分解とかしたかったらGSL使えってことなんでしょうか
368デフォルトの名無しさん:2008/11/14(金) 07:58:34
>>365
ユニットテストは書いてるの?
369デフォルトの名無しさん:2008/11/14(金) 08:23:18
>>351
> コンセプトがイマイチはっきりしない。
Gaucheboxは書籍「プログラミングGauche」のサンプルコードをWindowsユーザが手軽に試せるように作った。
370デフォルトの名無しさん:2008/11/14(金) 20:12:24
>>368
もちろん書いてる。というか書かざるを得ない。
371デフォルトの名無しさん:2008/11/14(金) 23:38:39
>>365
ダミーデータの部分が良く分からない。
実際にデータを解析したものを適当に束縛したのとかじゃダメなの?
わざわざ手動で1からデータ構造作らなきゃいけない訳でもないし、
何が問題で、デバッガ使うとどう改善するのか、もうちょっと詳しく教えてくれ。

あと、呼ばれてるはずの関数がなぜか呼ばれていない、ってのが気になる。
その部分って、副作用が前提になってたりしないかな?
なるべく副作用無しで書いておけば、関数の入力と出力だけに注目すればいいから、
もっと楽になると思うんだけども。
372デフォルトの名無しさん:2008/11/14(金) 23:46:07
ゴーシュで以下のコードが動いてくれません。

(map (lambda (op) (op 10 2)) '(+ - * /))

gosh: "error": invalid application: (+ 10 2)

どうすればいいですか?
373デフォルトの名無しさん:2008/11/14(金) 23:48:42
(map (lambda (op) (op 10 2)) `(,+ ,- ,* ,/))
もしくは(map (lambda (op) (op 10 2)) (list + - * /))
374デフォルトの名無しさん:2008/11/14(金) 23:52:05
>>372
それだと('+ 10 2)になるからね
375デフォルトの名無しさん:2008/11/14(金) 23:55:44
動きました。
ありがとうございます。

'(+ - * /) と (list + - * /) はおんなじモノかと思っていました。
違うんですね…
376デフォルトの名無しさん:2008/11/15(土) 00:24:31
>>371
何かバグが見つかるたびにデータを用意して、
細切れに関数を処理してというのが面倒なのです。
副作用がある場合は使えませんし。

「副作用無しにプログラムを書くべき」という主張はわかりますし、
「テストしやすいようにモジュール化すべき」というのも理想としては分かります。
しかし、デバッグ環境が貧弱なためにそう書かざるを得ないというのは
非常にダサいのではないでしょうか。

wxWidgetsのプログラミング戦略にもこうあります。
> デバッガを使う
> これはふざけたアドバイスに聞こえるかもしれませんが、意外なことに人々はデバッガを使わないことが多いのです。
> デバッガのインストールや使い方を学ぶことは多くの場合負担となります。しかし、非常にささいなプログラム以外には
> 本当に必要不可欠です。
http://wxwindowsjp.sourceforge.jp/html/2.8.4/wx_debugstrategies.html#debugstrategies
377デフォルトの名無しさん:2008/11/15(土) 00:49:46
>>376
gdbが貧弱なのでは
Cにスクリプトを組み込む場合を考えると、全部gdbでできるのが理想だ
378デフォルトの名無しさん:2008/11/15(土) 02:05:33
>>376
うーん。長くなってきたし、上手くいけば有益な議論になりそうだから、
せっかくだからWiLiKiに書いてみない? 良い助言が貰えるかもしれない。
あそこ、色んな言語知ってる人とか、開発者の人とかいるし。

最後の補足をしておくと、副作用無しでプログラムを書くべきっていうよりも、
副作用べたべたで書く部分と、副作用無しで書く部分を分ける感じじゃないかな。

それと、確かに、処理系の事情で、特定の手法を強制されるのは好ましくない。
関数的な手法以外も選べるのが言語のひとつの特徴な訳だし。
ただ、こればっかりは開発側のマンパワーの問題だから仕方ないよ。
待つか、書くか、説得するか、諦めるか、乗り換えるしかない。
379デフォルトの名無しさん:2008/11/15(土) 02:11:00
>>364
寄付金はどうだろう……。

とりあえず、プログラミングGauche買えば印税行くんじゃないか?
380デフォルトの名無しさん:2008/11/15(土) 03:08:57
こういうので寄付とかしても意味ないんじゃない?
コードを寄贈したり、フレームワーク作ったほうが喜ばれるかと。
381デフォルトの名無しさん:2008/11/15(土) 04:45:39
>>375
listは特殊形式じゃなくて関数だから、
'(+ - * /)つまり(quote (+ - * /))と同じなのは (list '+ '- '* '/)。(quote/listの分配則)

(map (lambda (op) ((eval op (scheme-report-environment 5)) 10 2)) '(+ - * /))
382デフォルトの名無しさん:2008/11/15(土) 04:50:50
最近、JITコンパイラありの言語処理系が増えてきたから、
(Lisp/Scheme界ではまだそうでもないが)
デバッガ開発のコストが凄く上がってる。
例えばv8はネイティブ実行オンリーだから、
デバッグモードではインタープリターに格下げってわけにいかないし。
383デフォルトの名無しさん:2008/11/15(土) 08:52:58
>>373, >>375, >>381
eval-applyを勉強する前だとはまり易いところだね。
(map (lambda (op) (op 10 2)) (list + - * /)) ; `(,+ ,- ,* ,/)
(map (lambda (op) ((eval op (scheme-report-environment 5)) 10 2)) (list '+ '- '* '/)) ; '(+ - * /)

最も初歩的な処理系が作れるようになってよかったね。
384デフォルトの名無しさん:2008/11/15(土) 09:26:03
>>381
値としては同じだけど前者は定数扱いだから
実装によっては変更不可の場合がある
385デフォルトの名無しさん:2008/11/15(土) 09:27:18
準クォートをどげんかせんといかん!

(map (lambda (op) (op 10 2)) `(,+ ,- ,* ,/))
(map (lambda (op) (op 10 2)) (quasiquote (,+ ,- ,* ,/)))
(map (lambda (op) (op 10 2)) (quasiquote ((unquote +) (unquote -) (unquote *) (unquote /))))
(map (lambda (op) (op 10 2)) (list (quasiquote(unquote +)) (quasiquote(unquote -)) (quasiquote(unquote *)) (quasiquote(unquote /))))
(map (lambda (op) (op 10 2)) (list + - * /))

こういうことを頭の中で一瞬にしてやってるの?
386デフォルトの名無しさん:2008/11/15(土) 09:38:49
クォートをどげんかせんといかん!

'(+ - * /)
(quote (+ - * /))
(list (quote +) (quote -) (quote *) (quote /))
(list '+ '- '* '/)
387デフォルトの名無しさん:2008/11/15(土) 09:46:52
準クォートをどげんかせんといかん!
`(,+ ,- ,* ,/)
(list `,+ `,- `,* `,/)
(list + - * /)

クォートをどげんかせんといかん!
'(+ - * /)
(list '+ '- '* '/)

これぐらいのステップで考えてる。
388デフォルトの名無しさん:2008/11/15(土) 09:57:16
クォートをどげんかせんといかん!
(list '+ '- '* '/)
(list `,'+ `,'- `,'* `,'/)
`(,'+ ,'- ,'* ,'/)
`,'(+ - * /)
'(+ - * /)
389デフォルトの名無しさん:2008/11/15(土) 10:00:48
listをquoteに展開して考えるのは良くないと思う
390デフォルトの名無しさん:2008/11/15(土) 10:08:42
考えられないのはもっと良くない。
考えられるけどやらないのはいいけれど。
391デフォルトの名無しさん:2008/11/15(土) 10:12:36
(define ((compose f g) x) (f (g x)))
が、Ypsilonだと通らない。gaucheは通る、さすが。
392デフォルトの名無しさん:2008/11/15(土) 10:22:48
>>391
そんなの普通だろ。PLTだって出来るし。
http://codepad.org/dUmojK3B

なんでYpsilonを攻撃するのか、Gaucheを持ち上げるのか理解に苦しむ。
393デフォルトの名無しさん:2008/11/15(土) 10:27:22
別に攻撃しているわけじゃないよ。
どちらかというと、どの処理系を使えばいいのかわからんという愚痴。
394デフォルトの名無しさん:2008/11/15(土) 10:39:40
>>391
それがGaucheで使えるのはshiroさんも知らなかったらしいですね
(Wilikiのとおる。さんの項より)
395デフォルトの名無しさん:2008/11/15(土) 10:43:12
>>391
規格には無い挙動だよね?
伝統的に許容する処理系は少くないみたいだけど
396デフォルトの名無しさん:2008/11/15(土) 10:46:09
R2RSまでは規格にあったそうで
R3RSで削除されたそうです
397デフォルトの名無しさん:2008/11/15(土) 12:04:35
('A`)y-~
398デフォルトの名無しさん:2008/11/15(土) 13:10:39
ttp://www.thinkit.co.jp/article/157/2/3.html
上の記事で紹介されているDSLについてなんだけど、記事自体は面白いと思ってるし
次回に期待しているんだが、「DSLは魔法ではない」という言葉が、
記事の作者と自分とでちょっと違う気がして気になってる。

おれはグレアムの主張は「本物のPrologコンパイラ >>> 少ないコードで書いたDSLのProlog」
というだけの事だと思ってる。がんばればDSLでもPrologコンパイラに肉薄できるものが
作れると思うんだ。そうとう巨大になるだろうけど、compile があるCLなら原理的には不可能じゃない。

なので、DSLは確かに魔法じゃないけど、けっして限界があるわけじゃない、と思ってる。
誰か意見を聞かせてほしい。
399デフォルトの名無しさん:2008/11/15(土) 13:37:28
>>382
ネイティブのデバッガの開発が高くつくのは
ネイティブコードをデバッグするのが難しいというよりも
「任意の」ネイティブコードをデバッグするのが難しいという理由です。

コンパイラとデバッガをセットで開発できるなら、例えば
(define (waha x)
 (print x))

@define-function waha
@enter-function waha [何がしかのデバッグ情報]
@start-line [(print x)のある行] [何がしかのデバッグ情報]
@print x
@leave-function waha
(@はコンパイルされた命令ということにしてください)

とコンパイルし、その後、enter-functionやstart-lineの呼び出しを
デバッガ側でフックできれば、デバッガの開発はそこまで難しくはありません。
もちろんデバッガ側では、enter-functionに登録された関数がコールバックされれば
スタックトレースやローカル関数の一覧を更新し、start-lineの場合は
ブレイクを行うか調べたり、現在実行している行の更新を行ったりします。
まあ、そこまで難しくないというだけで、ある程度のマンパワーが必要なのは事実なのですが。
400デフォルトの名無しさん:2008/11/15(土) 13:49:49
>>391
(define ((compose f g) x) (f (g x))) とか使いたい場合にはR6RSの処理系ならばこうすればいいです。
http://codepad.org/RWzYeHo5
401デフォルトの名無しさん:2008/11/15(土) 14:03:03
>>398
Lispで実装すると決め打ちすると、最適化の邪魔になるかもしれないよ。
仕様を見てから最適な実装言語を選ぶべきじゃないの?
勘で選ぶのではなく、数学的なやり方で。

・・・みたいな筋書きだと思う
402デフォルトの名無しさん:2008/11/15(土) 14:06:23
Prolog世代の感想としては、昔は普通にLispで実装されていたしなぁ。効率以外で理論的にダメな理由はないんじゃない。

DSLというレイヤーでみたらWhatの実現手段が推論だろうが手続きだろうがそれこそどうでもいいんじゃないかな。
単に望みの記述を書くための手段なんだから、DSLの表現にHowを望むかWhatを望むかは使う人次第だと思う。
私はどちらかといえばHowを隠蔽してWhatを記述するためにDSLを使いますよ。
403デフォルトの名無しさん:2008/11/15(土) 14:13:36
完全なものを積み上げていけば完全なものができあがる・・・
そんなふうに考えていた時期が
俺にもありました
404デフォルトの名無しさん:2008/11/15(土) 14:43:20
>>401
うーん。自分はLispは「楽」なので使ってるだけなので、
その筋書きだとすると次回に期待。

>>402
>Prolog世代の感想としては、昔は普通にLispで実装されていた
うは。そうなんですか。勉強になります。
DSLをどう書くか、ってその人のキャリアに依存するんですかねぇ。
405デフォルトの名無しさん:2008/11/15(土) 14:58:12
>>398
挙げているのがPrologだから、後付けで、
> 高速なマシン語に至る
をLisp処理系とシームレスに埋め込むのは結構難しいよね。
スタックの扱いがかなり違うから。
推論エンジンがボトルネックになりそうなら、高速化したいだろうし。

Grahamはその辺の微妙なラインの話をしていると思われ。
限界があるなんて思ってないと思う。
406デフォルトの名無しさん:2008/11/15(土) 15:38:34
>>405
その高速なマシン語に至るってのはどっからでてきた話?
407デフォルトの名無しさん:2008/11/15(土) 15:53:20
"On Lisp"の該当個所読んで。
408デフォルトの名無しさん:2008/11/15(土) 16:19:29
読んでみた。処理系とのシームレスな統合が難しいとか、スタックの扱いがどうとかいう話には見えないなぁ。
最後の節は単に、この章でつくったのはネイティブコードにコンパイルされて実行されるかもしれないけど、
いわゆる「Prologコンパイラ」と呼べるようなものじゃないよって説明してるだけじゃない?
409デフォルトの名無しさん:2008/11/15(土) 16:38:49
「呼べるようじゃない」理由は?
410デフォルトの名無しさん:2008/11/15(土) 16:56:19
理由は件のマシン語うんぬんの前の節に書いてある。
>本物のPrologコンパイラはループに変換できる規則を探すが、この章のPrologは定数を
>与える式やスタックに割り当てられるクロージャを探している。
と書いてある。要するに規則の実行が探索+解釈だから、インタプリタなんだ。

で、この後に「埋め込み言語は魔法ではない」ってのはProlog的な言語をLispコンパイラ向けに
作ったとしてもPrologコンパイラの代わりにはならないって話だろ。
Prologコンパイラが作りたければ、埋め込み言語の下に結局作らなきゃいけない。
Norvig本ではインタプリタの後にコンパイラも作るので興味があるなら読んでみるといい。
411デフォルトの名無しさん:2008/11/15(土) 16:58:43
>>409
408じゃないけどOnLispには
「LispコンパイラはPrologのための最適化ではなくLispプログラムのための最適化」
を狙っていて、それは本物のPrologコンパイラがやるものより低レベル、と書いてるよ。
ただしあくまで「OnLispの第24章で書かれた小さな埋め込み言語」が
低レベルってことだと思うね。
プロプロロガー(っていうのだろうか…?)の意見がぜひ聞きたいなぁ。
412411:2008/11/15(土) 16:59:37
>>410
すまん、かぶった
413デフォルトの名無しさん:2008/11/15(土) 17:19:30
プロブロガーだけど呼んだ?
414デフォルトの名無しさん:2008/11/15(土) 17:23:33
じゃ>>405でいいんじゃね?
415デフォルトの名無しさん:2008/11/15(土) 17:24:35
プロブロガーさんは命令型ブロギングと宣言型ブロギングについてどう思う?
416デフォルトの名無しさん:2008/11/15(土) 17:29:52
case-lambda って common-lispにはないの?
417デフォルトの名無しさん:2008/11/15(土) 17:31:46
規格にはないよ。R5RSにはあるの?
418デフォルトの名無しさん:2008/11/15(土) 17:33:10
一時、制約系が流行ったけど、最近あまり観ないね。
Oz/Mozartは、本が面白かった割には言語は注目されないし。
そもそもLisp系がほとんどなかったしねえ。
419デフォルトの名無しさん:2008/11/15(土) 17:36:39
制約と言えば、Garnet Toolkitを思い出す。
あれもDSL的なアプローチだな。
Lispの場合、DSLなのか、普通のプログラムなのか、
判断付きかねるところがあるが。
420デフォルトの名無しさん:2008/11/15(土) 17:50:14
>>399
ところがそんなふうにベタにコンパイルするんじゃあんまりネイティブにする意味が無いんだな。
特にSchemeの場合、関数を素直に機械語レベルの(マシンスタック操作のある)関数にするんじゃ
性能が伸びない。
デバッグモードとリリースモードで最適化を切り替えるっていうのも、本当にデバッガが必要に
なるような難しいバグはリリースモードでしか出現しない、なんてことがよくあるのでうまくない。
もちろん、最適化をかけつつデバッグ情報を残すことはできるんだが、そう単純な話ではないということだ。
421デフォルトの名無しさん:2008/11/15(土) 17:59:09
>>378
分かりました。ためしに書いてみます。
422デフォルトの名無しさん:2008/11/15(土) 18:21:29
>>418>>419
Lispは派生言語作るというよりも、
ライブラリになっちゃうのよね。
423デフォルトの名無しさん:2008/11/15(土) 18:41:19
>>420
もちろん最適化後のトレースにはいろいろな問題がつきものなのですが・・・
だからといって
「リリースモードでのトレースには問題が出る可能性があるから、デバッグモードでもトレースはしない」
という姿勢はどうなのでしょうか。

個人的には、アプリケーションレベルでのテストやモジュール化を推奨するのではなく、
そういうところこそ綿密なテストとモジュール化を導入していただきたいです。
削減できる時間も全然違いますし。
424デフォルトの名無しさん:2008/11/15(土) 20:02:34
(define ((compose f g) x)
(f (g x)))
の意味が判らない
(define name (lambda 〜に直すとどうなんの?
425デフォルトの名無しさん:2008/11/15(土) 20:03:09
>>423
姿勢はどうなのでしょうか、とか言われてもなー。
>>420は「難しい」とは言ってるけど「しないでいい」なんて言ってないぞ。

もうちょっと落ち着きなさいな。
426デフォルトの名無しさん:2008/11/15(土) 20:05:10
プロプロロガーの意見を聞きたがってるよ

Lisp Scheme Part24
http://pc11.2ch.net/test/read.cgi/tech/1224939205/411
427デフォルトの名無しさん:2008/11/15(土) 20:05:12
やるべきだと言えば
やる気が出るものなのかね
やっぱ楽しくないとだめじゃん
428デフォルトの名無しさん:2008/11/15(土) 20:08:10
>>424
うちの処理系では
(define (compose f g) (lambda (x) (f (g x))))
になってnameがシンボルじゃないということでエラーになりますが。
構造化代入かと思ったけど違うようですね。
主観ではこんなのが通る必要はないと思います。
429デフォルトの名無しさん:2008/11/15(土) 20:10:50
>>424
(define compose
 (lambda (f g)
  (lambda (x)
   (f (g x)))))
かな

>>428
R2RSまでは規格にあった書き方らしいです
R5RSでも規格違反ではないでしょう(規格にないだけで)
430デフォルトの名無しさん:2008/11/15(土) 20:18:31
StrongSmalltalk?みたいに静的型ギチギチのLISPかSCHEMEってないですかね。
型宣言をどこで行うか、ってのが毎回悩みます。
関数内の(declareには違和感が。
431デフォルトの名無しさん:2008/11/15(土) 20:20:09
>>430
つ【マクロ】

とはいえ型付きLispはほしいですね
432デフォルトの名無しさん:2008/11/15(土) 20:34:19
(typed-define int var 1)
(typed-define ((int int) int) (add a b) (+ a b))
(typed-lambda ((int int) int) (a b) (+ a b))
ってことにすれば
433デフォルトの名無しさん:2008/11/15(土) 20:37:07
静的な型矛盾の検出は?
434デフォルトの名無しさん:2008/11/15(土) 20:40:48
consはどうするの
(declare-type number-list (cons int number-list))

(typed-define number-list var (list 1 2 3)) ; ○
(typed-define number-list var (cons 1 2)) ; ×
435デフォルトの名無しさん:2008/11/15(土) 20:45:06
(declare-type number-vector (apply vector (cons int number-list)))
436デフォルトの名無しさん:2008/11/15(土) 20:47:03
>>433
その前に、静的な型矛盾とは?
437デフォルトの名無しさん:2008/11/15(土) 20:50:36
>>436
静的な:実行時でなくコンパイル時もしくはロード時に
型矛盾:型エラーをおこす(|してほしい)ような式
438デフォルトの名無しさん:2008/11/15(土) 20:58:02
>>434
number-listの終端条件がない
無限リスト?
439デフォルトの名無しさん:2008/11/15(土) 21:05:29
>>437

うぐぅ
ボクの頭では無理そうだようぐぅ
440デフォルトの名無しさん:2008/11/15(土) 21:10:56
C言語でもvoid *とか使うでしょ。
あれと同じレベルでならとりあえず作れるんでは。
簡単な型チェックができて、パフォーマンスが出ればそれでいいじゃん。
つまり明示的に型キャストするコードを入れるわけだ。
441デフォルトの名無しさん:2008/11/15(土) 21:14:59
C言語なら(void *)とかを代入とかにはさめばいいけど
Lispは括弧を跨ぐ必要あるから修正大変だよ
うぐぅ
442デフォルトの名無しさん:2008/11/15(土) 21:29:34
いまどきうぐうとか流行んねえんだよにぱー
443デフォルトの名無しさん:2008/11/15(土) 23:44:10
WiLiKiにデバッグのページ作った奴、ここの住人だろ。
スクリーンショットで分かるんだよわは〜。
444デフォルトの名無しさん:2008/11/15(土) 23:52:05
むす〜っていうのは22才だったのかw
445デフォルトの名無しさん:2008/11/16(日) 01:57:54
おはヷ〳〵〰

〳〵ヷヷ〰(♛Д♛)ゔ〲〰ゔ〲〰

ゔ〲〰ゔ〲〰 乜勹〰スㄜㄝㄋ

〳〵ヷヷヷヷ〰〰〰ゔ〲〰ㄡㄦㄡㄦ
☺☻☺☺☻☺☺☻☺☺☻☺☺☻☺
うぉぐ!(*゜∀゜)〜♡ℳℴℯ❤
ℒℴνℯ..._〆(゜▽゜*)㌰㌰

乜勹〰スㄜㄝㄋ

ゔ〲〰ゔ〲〰 乜勹〰スゔ〲〰ゔ〲〰 乜 勹 〰 スㄜㄝㄋ
う゛〲〰ゔ〲〰 乜勹〰ス
(♛Д♛)ゔ〲〰ゔ〲〰 乜勹〰スㄜㄝㄋ
〳〵ヷヷヷヷ〰〰〰ㄡㄦㄡㄦ
ヺ〲〰ヺ〲〰<br>ℒℴνℯ..._〆(゚▽゚*)㌰㌰
ヺ〲〰 乜勹〰ス

ヺ〲
〳〵ヷヷ〰〳〵ヷヷ〰
446デフォルトの名無しさん:2008/11/16(日) 08:01:43
447デフォルトの名無しさん:2008/11/16(日) 18:53:33
>>338-345で言ってたの本当だという気がしてきている。
448デフォルトの名無しさん:2008/11/16(日) 18:55:13
MITのトイレは既にLisp制御じゃないぞ
449デフォルトの名無しさん:2008/11/16(日) 21:17:40
それはポールの友人のトレバーが書いた「もどき」では。
450デフォルトの名無しさん:2008/11/16(日) 22:19:47
Python版のSICPはもう出版されてるの?
451デフォルトの名無しさん:2008/11/17(月) 03:18:23
ttp://practical-scheme.net/wiliki/wiliki.cgi?Scheme%3a%E3%83%87%E3%83%90%E3%83%83%E3%82%B0

↑何か凄い暴走の仕方してるな。
LisperやSchemerがデバッガの実装手法を知らないと思ってるのか、
頼みもしないのに、余計なことも含めてデバッガ事情を長々と……。

こいつは対話をするつもりがあるのか?
452デフォルトの名無しさん:2008/11/17(月) 03:34:45
あちらにコメント欄付いてるけど? :p
453デフォルトの名無しさん:2008/11/17(月) 05:04:58
printfで十分
454デフォルトの名無しさん:2008/11/17(月) 05:42:20
デバッガが必要ってどんなプログラミングスタイルなんだろ
やっぱでっかい関数にグローバル変数使いまくりって感じか?
まぁそりゃ無いよりはあった方がいいけどさ
455デフォルトの名無しさん:2008/11/17(月) 06:18:54
>>452
うん、書いてきた。

真面目に話し合う気があるならWishListとかに要望として書けばいいのに。
律儀に行間を読んで返事してくれてるからいいけど、
あんなのぶっちゃけ議論の切っ掛けになる文章じゃないだろ。

せっかく、Schemeのデバッグ機能の実装の実情とか、
興味深い話聞けそうな良い機会なのにさー。
456デフォルトの名無しさん:2008/11/17(月) 07:04:21
煽り対象が一気にLisp一般に拡大されてるのはなんでなんでだ
457デフォルトの名無しさん:2008/11/17(月) 07:22:41
すごい斜めっぷりで笑えた。
>>378は反省しる
458デフォルトの名無しさん:2008/11/17(月) 07:27:16
>>457
猛省してるよ(´・ω・`)
459デフォルトの名無しさん:2008/11/17(月) 08:17:19
>>451
おれは暴走気味でかつ面白いと思ったよ。少しずつ整理したら何か意味のあるものが出てくるんじゃね?
Squirrelの情報とデバッガ原則はまるごと別ページでいいな。
460デフォルトの名無しさん:2008/11/17(月) 08:41:39
開発者の態度が大人だからって甘えない方がいいぞ。
461デフォルトの名無しさん:2008/11/17(月) 10:25:48
>したがってデバッガ開発者というのは常に、デバッグ対象となるシステム開発者やコミュニティに対して適切なデバッグAPIを提案し、その実装に対する圧力をかけていかなければなりません。

圧力…麻生じゃないんだから、もっと適切な言葉を選べよ。
462デフォルトの名無しさん:2008/11/17(月) 10:48:12
>>382
その辺のレイヤーはLLVMに丸投げって手もある。
463デフォルトの名無しさん:2008/11/17(月) 12:10:56
Stalinは人間がべた書きしたCよりも遅くなることはないのでしょうか?
464デフォルトの名無しさん:2008/11/17(月) 13:18:00
そういうことを自分で理解した上で使いたいと思うものなんだよな
処理系の内部の解説がもっと増えるといいな
465デフォルトの名無しさん:2008/11/17(月) 14:00:24
悪のりしすぎると感じ悪い。
466デフォルトの名無しさん:2008/11/17(月) 14:12:03
>>420
> 特にSchemeの場合、関数を素直に機械語レベルの(マシンスタック操作のある)関数にするんじゃ
> 性能が伸びない。
ソース希望
467デフォルトの名無しさん:2008/11/17(月) 15:20:17
アロハ君が、アロハ君さえいてくれたら・・・












ということで、デバッガのことは彼にまかせようや
468デフォルトの名無しさん:2008/11/17(月) 16:35:47
$chicken-setup easyffi

downloading catalog ...
downloading catalog from www.call-with-current-continuation.org ...
downloading easyffi.egg from (www.call-with-current-continuation.org eggs 80)
gunzip -c ../easyffi.egg | tar xf -
Error: argument is not a string or string vector: ("easyffi.so" "chicken-wrap")

エラーメッセージで検索したらMLに誰か投稿してるんだけど誰も返信しないで放置されてる感じ
osが悪いんだろうかubuntu8.04のaptでいれたchickenなんだけど
469デフォルトの名無しさん:2008/11/17(月) 21:47:28
linuxだとどこが悪いのか収拾付かないから
*BSDにした方がいいよ
470デフォルトの名無しさん:2008/11/17(月) 22:31:21
>>462
その辺のレイヤーってどの辺?最適化?
個人的にLLVM興味持っているんだけど、あんまり情報ないね…
471デフォルトの名無しさん:2008/11/17(月) 22:41:20
>>470
つ JIT+デバッグAPIプリミティブ
472 ◆KGuq.Ts1uc :2008/11/17(月) 23:23:53
>>376
> 「副作用無しにプログラムを書くべき」という主張はわかりますし、
> 「テストしやすいようにモジュール化すべき」というのも理想としては分かります。
> しかし、デバッグ環境が貧弱なためにそう書かざるを得ないというのは
> 非常にダサいのではないでしょうか。

デバッグ環境が貧弱なために、ではない。
Scheme においては元々それが自然な書き方であって、
逆らったら何かと不都合なのはアタリマエなんだよ。

「記述スタイルが考えなしなためにデバッグ環境を期待してしまうあなたは非常にダサい」
ということ。
デバッグを支援する環境はあったら便利だとは思うけど、
Scheme (Lisp) 的でない書き方を念頭に置いた上では議論にならない。
デバッガでデバッグしやすい記述をしろとでも言いだしかねない雰囲気さえ読み取れる。
主張が最初からデバッガに向いてしまってて本質を見失っている。
煽る意味であえてそうしたのならいいけど、
Scheme (Lisp) でのデバッグ作業ってものをよくわかった上で検討しないと
デタラメな方向へ向かっていってしまうよ。
473デフォルトの名無しさん:2008/11/18(火) 00:03:55
(Lisp) ははずしといたら?彼はEmacs Lispのedebugとか気に入るかもしれんし。
474デフォルトの名無しさん:2008/11/18(火) 00:17:43
C/C++との色々な違いが本質みたいに言う人もいるが
個人的には、そんな細かいことで喧嘩すんなと言いたい
Lisp/Schemeは言語の中ではかなり平凡な部類に入るぜ
>>398なんて命令型言語の代表みたいな扱いだしな
475デフォルトの名無しさん:2008/11/18(火) 00:34:03
>>474
だよね。Lispは色々なスタイルを選べるのも強みなわけだし。
特に、Schemeなんかは、関数的な手法しかとれないなら、
わざわざ頑張って最小の構成要素考えた意味が、根底から吹き飛ぶ気がする。
476デフォルトの名無しさん:2008/11/18(火) 00:38:21
Schemeで一体何をしたいのかということになる。
関数プログラミングをしたいのなら、副作用を嫌えばいい。
命令プログラミングをしたいのなら、どんどん使えばいい。
Schemeで、一体何をしたい?
Schemeコミュニティは、一体何を目指している?
477デフォルトの名無しさん:2008/11/18(火) 00:39:20
行き違い。スマン。
478デフォルトの名無しさん:2008/11/18(火) 01:02:42
件の彼がおかしいのは、内容というより、話の進め方だと思う。

何らかの機能が欲しいのなら、まず、自分の要望を伝えて、
その利点を説き、相手に情報が不足しているなら提示し、
その上で、双方の落とし所を見つけるために話し合うのが筋だろ?

いきなりデバッガトークをアクセル全開で展開し、
頼まれてもいないのに書くのが面倒とか言っちゃう辺り、
どれだけぶっ飛んだ思考回路をしてるのか底が知れない。
出した情報自体は他人の益になってるのが救いだけど。

それと悪ノリ。2chじゃないんだし、むす〜とか空気読めよ。
479デフォルトの名無しさん:2008/11/18(火) 02:01:07
>>472みたいな意見を、
Schemeコミュニティの総意だと受け止めて、
それなら啓蒙しないとと頑張ってしまったんじゃないの?
俺は受け手じゃないからどうでもいいんだが。
480デフォルトの名無しさん:2008/11/18(火) 03:28:45
ム板最強言語スレage
481デフォルトの名無しさん:2008/11/18(火) 12:21:04
Nuageが便利そうなんだけどSLIBの行列計算と互換ないのがちょっと不満
482デフォルトの名無しさん:2008/11/18(火) 16:41:46
特異値分解ぐらい自分で書けってのがschemeの思想なのかな
483デフォルトの名無しさん:2008/11/18(火) 21:32:38
Schemeのデバッグってtrace使うか、displayを入れるかくらいしか知らんかった。
ていうかそれで十分じゃない。ステップ実行みたいなのって必要あんの?
と思う私はロートルで現状についていけないだけなのかも。
484デフォルトの名無しさん:2008/11/18(火) 22:49:44
構造化プログラミングを意識しておけば十分だよな
485デフォルトの名無しさん:2008/11/18(火) 23:11:33
schemeだから必要ないという理由は何も無い。
デバッガー使えない頭の固い老害はとっとと隠居しろ。
486デフォルトの名無しさん:2008/11/18(火) 23:28:14
いちいち煽るなよw
487 ◆KGuq.Ts1uc :2008/11/19(水) 00:28:10
>>485
正直、あんまり必要だと思ったことはないのは確か。
あると便利なこともあるけど、そんなことより今問題になってるのは>>376の主張が変ってことでないか?
伝統的な Lisp デバッガでダメなのはどこよ。
488デフォルトの名無しさん:2008/11/19(水) 00:29:50
Lispデバッガがダメなのではなくて
Schemeのデバッグ環境がCLほど整ってないのが問題なのでは?
489デフォルトの名無しさん:2008/11/19(水) 02:45:58
>>488
PLT SchemeはGUIでの充実のデバッグ環境だぞ。
BiglooはBeeがあるし、Guileにもインタラクティブデバッガがある。
他にも各処理系で変わってくるけど、色々。

言うほど酷くないと思うんだが、使ってないだけというオチじゃないのか?
490デフォルトの名無しさん:2008/11/19(水) 03:16:54
本物を求める君のEdwin
491デフォルトの名無しさん:2008/11/19(水) 07:47:34
>>489
元ネタはgaucheにデバッガがほしいって話じゃなかったっけ?
492デフォルトの名無しさん:2008/11/19(水) 08:44:22
デバッガ概説を始める理由がそれか?
493デフォルトの名無しさん:2008/11/19(水) 10:23:56
>>376が脳軟化じじいの煽りに対して、デバッガの有用性をうまく説明できなかったのが混乱の原因。
494デフォルトの名無しさん:2008/11/19(水) 11:11:01
思考形態の切り口で煽ると「頭が硬い」になって、
肉体機能の切り口で煽ると「脳の軟化」になるんだな。
ちょっとややこしい。

一方発言者の頭は、硬い柔らかい以前に「悪い」で綺麗に統一されてそうではある。
495デフォルトの名無しさん:2008/11/19(水) 13:28:33
Gaucheにデバッガが欲しいと2chに書いてみた

賞賛をもって受け入れられるハズが喰い付きが悪いので悩む

持論を作者本人にぶつけるべくWilikiに凸撃

Shiroさんとも話が噛み合ないので悩む(Lisper/Schemerのプログラミングスタイルを理解してないので当たり前)

勢い余って俺が仕様提示するから好きなの実装しろと書いてしまう

それはおかしいだろという突っ込みが横から入る

慌ててページ整理のフリをしてコメントをすべて見えないように

編集履歴には残ってしまうので途方に暮れている ← いまココ
496デフォルトの名無しさん:2008/11/19(水) 13:35:41
「プログラミングGauche」のデバッグの章を読んだ上での犯行なんだろうか?
497デフォルトの名無しさん:2008/11/19(水) 13:51:34
>>496
読んでいたら突撃しないと思うが?
498デフォルトの名無しさん:2008/11/19(水) 14:40:15
それが若さってものだろう・・・でも「瓢箪から独楽」ってこともあるからな、節度を持ってがんがれ!
499デフォルトの名無しさん:2008/11/19(水) 14:44:57
疑われてないと思うけどぽっくんではないお。
500デフォルトの名無しさん:2008/11/19(水) 15:01:50
Gaucheの配下に移ったけど、GaucheどころかSchemeとは関係ない
・デバッガ一般論
・別の言語のデバッガAPI
の話しかないなあ。
501デフォルトの名無しさん:2008/11/19(水) 17:57:46
> 内容はhistoryに残しましたので
し?
502デフォルトの名無しさん:2008/11/19(水) 19:54:51
schemeって規模の大きいソフトにも使えるの?
namespaceなくてもなんとかなる例はemacs lispみてればなんとなく予想つくけど
503デフォルトの名無しさん:2008/11/19(水) 20:17:32
>>499
お前のことは誰も疑ってないから安心しろ。

それにしても、やたらとビジュアル環境にこだわってるけど、
構築に必要なインフラがgdbと違うとでも思ってんのかな?
GUIだろうがCLIだろうが、処理系に要求されるものは変わらないよね?
504デフォルトの名無しさん:2008/11/19(水) 20:22:03
ビジュアルなデバッガでも裏でgdb動かしてるのいるし。
505デフォルトの名無しさん:2008/11/19(水) 20:23:43
マイクロソフト謹製のVisualなんとかの信者なんじゃね?
506デフォルトの名無しさん:2008/11/19(水) 20:35:45
Lisp/Schemeの初心者なんだろう、きっと。
最初にLispでプログラムを書いたときにsetqを使いまくっていた
自分を思い出した。関数プログラミングに慣れるとデバッグに対する
考え方も変化すると思うよ。
507デフォルトの名無しさん:2008/11/19(水) 20:37:26
C/C++のデバッグやってるときも、デバッガに頼るのはどうしようもないときの最後の手段にしてるんだけどなあ。
そういうのは少数派で、とにかくデバッガでやるってのが多数派なんだろうか。
508デフォルトの名無しさん:2008/11/19(水) 21:09:09
C/C++だと、もちろんデバッグにも使うけど、読むための道具という意識も大きい。
509デフォルトの名無しさん:2008/11/19(水) 21:11:07
でも、今回の件でShiroさんの構想をうかがい知ることができて、
個人的には色々興味深かった。Gauche 1.0に期待。
510デフォルトの名無しさん:2008/11/19(水) 21:11:55
初心者だけどゴーシュの#?が好きすぎて困る。
511デフォルトの名無しさん:2008/11/19(水) 21:43:28
emacs code browser ってlispは対応してるの?
Visualな環境ならそれでいいような気もする
512デフォルトの名無しさん:2008/11/19(水) 21:54:37
>>509
同意。
あとどんな相手からでも意味のあるものを取りだそうとする姿勢は
本当に見習いたいよ。
513デフォルトの名無しさん:2008/11/19(水) 21:59:23
敵に回すと粗探し
味方につけると誉め殺し
514デフォルトの名無しさん:2008/11/19(水) 22:38:04
嫌な相手からでもアンチパターンは取りだせるわな
515デフォルトの名無しさん:2008/11/19(水) 22:39:10
自分の書き込みに責任を持たず、丸ごと闇に葬ろうとしてる辺り、
粗ってレベルじゃないけどな。
516デフォルトの名無しさん:2008/11/19(水) 22:47:12
意味のあるものをなにも取り出せない
というアンチパターンが513ってことだよ
特定の誰かを批判したわけじゃない
517デフォルトの名無しさん:2008/11/19(水) 23:07:30
>>398から延々続いてる話、そろそろ終了してくんない?
邪魔なんだけど。
518デフォルトの名無しさん:2008/11/19(水) 23:18:23
>>517
とりあえず括弧にでも括っといて忘れちゃいなよ。
519デフォルトの名無しさん:2008/11/19(水) 23:24:54
>>517
>>353だろ。
520デフォルトの名無しさん:2008/11/19(水) 23:24:58
文句言うだけじゃなくて、自分で新しい話題振んなさいよ。
521デフォルトの名無しさん:2008/11/20(木) 01:13:16
>>506
そうかなぁ?
実行単位でのステップ実行って「書き間違い」の認識につながると思うのだけど。
具体例だとテストユニットが通らないけど見た目で気がつかない(読み間違う)様なバグね。
↑みたいなのってステップ実行で変数の変化をみて「あ!」とか思う事あるとおもうんだけどなぁ。

522 ◆KGuq.Ts1uc :2008/11/20(木) 01:31:57
atan を「あーたん」って読んでみると、愛着がわくよね。
あーたん かわいいよ あーたん
523デフォルトの名無しさん:2008/11/20(木) 01:39:49
>>522
じゃ hyperbolic は?
524デフォルトの名無しさん:2008/11/20(木) 03:26:47
>>517
何か書きたいことがあれば書けばいいじゃん
525デフォルトの名無しさん:2008/11/20(木) 06:59:32
>>517
おまえが蒸し返さなきゃとっくに終了してたな
526デフォルトの名無しさん:2008/11/20(木) 09:57:42
>>517
マッチポンプしてんじゃねーよ
527 ◆KGuq.Ts1uc :2008/11/20(木) 10:27:09
>>523
Hyperって「度を越した」って意味だな。
超えたものを意味する Meta を連想してそこからメタボリックなオッサンが思い浮かぶ。
イマイチ。
萌えられる理屈を付けてくれ。
528 ◆KGuq.Ts1uc :2008/11/20(木) 10:50:40
麻生聖拳。 それは福田聖拳を源流とする一子相伝の最強の拳法である。
529 ◆KGuq.Ts1uc :2008/11/20(木) 11:08:52
誤爆したー。 orz
スマソ
530デフォルトの名無しさん:2008/11/20(木) 12:29:42
goshで

(use slib)
(require 'eps-graph)

できなかった
パイプでgnuplot使うのが普通なの?
531デフォルトの名無しさん:2008/11/20(木) 15:09:58
>>530
(require 'eps-graph) の前に (require 'color)
532デフォルトの名無しさん:2008/11/20(木) 18:25:31
goucheでscmutils使えなくて困ってる。
どうやったら使える?
特にup, down, literal-function, definite-integralとか。
533デフォルトの名無しさん:2008/11/20(木) 20:11:32
Gaucheで動くのかい?
Unix系のMIT-Schemeにべったり依存じゃなかった?
動いたらうれしいね。SICMが試せるよ。
534デフォルトの名無しさん:2008/11/20(木) 20:18:47
>>533
>Unix系のMIT-Schemeにべったり依存じゃなかった?
随分古い情報ですね。Guile用とか出てますよ。
べったり依存は過去の話でしょ。
535デフォルトの名無しさん:2008/11/20(木) 20:39:01
536デフォルトの名無しさん:2008/11/20(木) 21:12:32
gosh>(use slib)
gosh>(load "load.scm")
gosh>(set-current-module generic-environment)
gosh>(print-expression ((D sin) 's))
(cos s)
537デフォルトの名無しさん:2008/11/20(木) 21:41:39
うわ〜、教えてください。
Gaucheに移植されたscmutilsってどこで入手できるんですか?
538デフォルトの名無しさん:2008/11/20(木) 23:53:27
>>537
あなたがこれから移植すれば入手できます
539デフォルトの名無しさん:2008/11/21(金) 01:56:21
ああ、やっぱりね。
540デフォルトの名無しさん:2008/11/21(金) 11:51:18
>>536
(load "load.scm") が呼び出してるのは(load "load-real.scm")なのでその中身を見てみる。

; load-real.scm

(if (defined? 'scmutils-base-environment)
(set-current-module scmutils-base-environment)
(define scmutils-base-environment (current-module)))

(define derivative-symbol
(string->symbol "D"))

(define (with-working-directory-pathname path thunk)
(let ((old (getcwd)))
(chdir path)
(let ((result (thunk)))
(chdir old)
result)))

(define (in-scmutils-directory relative-path thunk)
(with-working-directory-pathname
relative-path
thunk))

(load "compat.scm")
(load "general/load.scm")
(load "kernel/load.scm")
(load "simplify/load.scm" )

(define symbolic-operators
(hash-fold (lambda (key value prior) (cons key prior)) '() symbolic-operator-table))
541デフォルトの名無しさん:2008/11/21(金) 11:52:10
;load-real.scmの続き

(load "display/load.scm" )

(define (lambda->numerical-procedure lexp)
(primitive-eval lexp))

(load "numerics/load.scm")
(load "poly/load.scm" )
(load "kernel/litfun.scm" )
(load "units/load.scm" )
(load "mechanics/load.scm")
(load "calculus/load.scm")

; load-real.scm終わり
542デフォルトの名無しさん:2008/11/21(金) 12:04:05
ということは

(load "compat.scm")
(load "general/load.scm")
(load "kernel/load.scm")
(load "simplify/load.scm" )
(load "display/load.scm" )
(load "numerics/load.scm")
(load "poly/load.scm" )
(load "kernel/litfun.scm" )
(load "units/load.scm" )
(load "mechanics/load.scm")
(load "calculus/load.scm")

これを順番に潰していくわけだ。compat.scmからだね。
543デフォルトの名無しさん:2008/11/21(金) 17:46:43
ちょっと手間かければ誰でも作れるものが作られてないというのは
schemeがちょっとしたものなら自分で作れ
という文化だからなの?
544デフォルトの名無しさん:2008/11/21(金) 17:54:29
ちょっとしたものなら一瞬で作れてしまうスパーハカーばかり
という文化のせいではなかろうかとふと思った。
545デフォルトの名無しさん:2008/11/21(金) 19:47:21
>>496-497
その本手元にないから立ち読みしてきた。
単にデバッガーを使わないデバッグテクニックを紹介してるだけじゃねーか。

schemeにはデバッガーは不要という理由はどこにもないな。
546デフォルトの名無しさん:2008/11/21(金) 19:49:20
デバッ「ガー」とか伸ばしちゃう男の人って
547デフォルトの名無しさん:2008/11/21(金) 19:53:19
なんとなく
デバッガ:GDBみたいなの
デバッガー:レースゲームとかでひたすら壁に衝突したりする人
ってな印象が
548デフォルトの名無しさん:2008/11/21(金) 20:00:51
ディッバガー
549デフォルトの名無しさん:2008/11/21(金) 20:51:15
Schemeでクヌースの文芸プログラミングをサポートする
ものがあったら面白いんじゃない?
デバッガをぶん回す最近の流行に反発を感じるんだよね。
550デフォルトの名無しさん:2008/11/21(金) 22:12:55
デバッガ前提でプログラム組む男の人って・・・
551デフォルトの名無しさん:2008/11/21(金) 22:15:14
女はいいの?
552デフォルトの名無しさん:2008/11/21(金) 22:19:09
553デフォルトの名無しさん:2008/11/21(金) 23:12:55
http://codepad.org/FQ5WLQTU 普通のzipの使い方
http://codepad.org/DC96M7wC ではzipはこういう定義でいいのかと思うけど、だめ。

問題.zipの定義式を書いてください。
554デフォルトの名無しさん:2008/11/21(金) 23:24:43
Structured Programming with go to Statements DONALD E. KNUTH
555デフォルトの名無しさん:2008/11/21(金) 23:58:23
556デフォルトの名無しさん:2008/11/22(土) 00:05:48
>>549
あるよ。
www.literateprogramming.com/lpscheme.pdf
www.literateprogramming.com/tools.html

Knuth先生もMMIXエミュにデバッガ付けてましたが…
パイプラインレベルまでもエミュするCPUエミュレータw
557デフォルトの名無しさん:2008/11/22(土) 00:10:09
>>553
http://codepad.org/DC96M7wC
(define zip
 (lambda x (map list x)))

この式を以下のように変更する。
http://codepad.org/a2st1Q1E
(define zip
 (lambda (list1 . more-lists)
  (apply map list list1 more-lists)))
558デフォルトの名無しさん:2008/11/22(土) 00:19:48
>>555, >>557
リストの長さが同じ場合には上手く動くけど、
長さが違う場合にはSRFI-1のzipのようには動かないです。
http://codepad.org/fwVVGnZJ
>>552のmap listの例はそういう条件でzipと同じ動作をしているので、
完全なzipの代替品ではないことに注意。
559デフォルトの名無しさん:2008/11/22(土) 01:04:09
>>546
用語の間違いを指摘することでしか反論できないようだな。
560デフォルトの名無しさん:2008/11/22(土) 01:15:02
デバッガーは1.0になってからって話が既に出てるだろ。
561デフォルトの名無しさん:2008/11/22(土) 01:25:56
>>559
「表記」でしょ?
562デフォルトの名無しさん:2008/11/22(土) 01:31:58
>>559
しょーもない釣りはいらん。よそでやれ。
563デフォルトの名無しさん:2008/11/22(土) 02:27:30
>>558
なるほどね。たしかにリストの長さが違うと文句言われるよね。
行列ならリストの長さが同じだから気がつかないのか。
http://codepad.org/RGXMLkWF
http://codepad.org/HEst35w8
http://codepad.org/huWMYkFF
正方行列以外でも問題がないから同じように思ってたよ。ありがd。
564デフォルトの名無しさん:2008/11/22(土) 05:35:28
>>556
ありがとう。

プリミティブを公理、きちんと証明されてバグの取れている関数を定理、
自らが作り出したデータ構造なんかを定義、のように見立てて、
数学の証明をするかのように今、書いている関数の正しさを証明していく。
そんなスタイルに憧れる。工学的には手間がかかりすぎて有用ではないかも
しれないけれども。関数プログラミングなら正しさの証明は可能なんじゃないだろうか。
565デフォルトの名無しさん:2008/11/22(土) 07:10:47
仮にそんなことができたとしよう。
その手続きもプログラムとして書き下ろせるはず。
すると、そのプログラム自身の正しさをそのプログラムで正しいと証明できる事になる。
さて、
566デフォルトの名無しさん:2008/11/22(土) 07:53:22
このプログラムをちょっとだけ改造する。
このプログラムで検査したプログラムが正しかったときに、
不正なコードをわざと実行する。
従って、この改造されたプログラムは正しいプログラムではない。
ところで、
567デフォルトの名無しさん:2008/11/22(土) 09:04:57
ああ、ゲーデルとかチャイティンとかそこまで神経質に
厳密にやるつもりはないんだよ。
568デフォルトの名無しさん:2008/11/22(土) 10:28:05
>>558, >>563
http://uim.googlecode.com/svn/branches/r5rs/scm/util.scm
上記リンクのzipを使うと>>558のようなリストの長さが違う場合も処理できます。
http://codepad.org/j5FehpX1
569デフォルトの名無しさん:2008/11/22(土) 12:19:11
>>568
zipは可変個の引数をとるから(zip . lists)の形式でdefineする訳か。
http://pc11.2ch.net/test/read.cgi?bbs=tech&key=1224939205
570デフォルトの名無しさん:2008/11/22(土) 12:32:25
http://codepad.org/FTbFLenS
http://codepad.org/xKau7r1q
ということは、最低でも空のリストを1個は渡してやらないとだめってことか。
571デフォルトの名無しさん:2008/11/22(土) 14:57:40
>>564
純粋な関数プログラミングだと値の表示もできないよ。
それをするにはディスプレイやその他の状態を変更しなきゃいけないわけで。
572デフォルトの名無しさん:2008/11/22(土) 15:01:57
Haskelみたいに分離すればいい
573デフォルトの名無しさん:2008/11/22(土) 15:36:29
>>571
そこまで徹底しなくてもいいわけで。

Schemeだと割とゆるめに関数プログラミングできるんでいいと思うよ。

574デフォルトの名無しさん:2008/11/22(土) 17:13:39
Little Schemer大体読み終わったけど、この本の会話みたいに
宣言的に書く・考えるということにどうも慣れません。
この先Schemerシリーズの続きあるいはLittleの復習、
Gauche本、萩谷先生の関数プログラミング
どれから読むのが良いですか?
575デフォルトの名無しさん:2008/11/22(土) 17:26:13
マジキチ
576デフォルトの名無しさん:2008/11/22(土) 18:08:19
On LispとかSICPでも読んでみれば?
Little SchemerはSeasonedと2冊で1セットだけど、
いやになったなら寄り道するのもいいと思うよ。
577デフォルトの名無しさん:2008/11/22(土) 18:15:10
個人的には萩谷先生の「関数プログラミング」が好きだったね。
もし古本屋にあれば「ソフトウェア考現学」もマニアックで良かったよ。
578デフォルトの名無しさん:2008/11/22(土) 18:46:31
PGの「ハッカーと画家」なんかをお勧めしたいなぁ。
Schemeのどういうプログラミングスタイルが効果的なのかを教えてくれるし、
どういったことを出来るようになると良いかを考えるきっかけになるから。
自分のやりたいことをハッキリさせれば読むべき本も自分で探せるようになるんじゃないかなぁ。
579デフォルトの名無しさん:2008/11/22(土) 20:37:55
こういう変わった感じの関数定義ってどこで勉強してるんですか?
>>391
(define ((compose f g) x) (f (g x)))
>>570
(define (zip list1 . more-lists) (apply map list list1 more-lists))
>>570のはこう書き換えられるのに気がつきました。
(define (zip . list1) (apply map list list1))
http://codepad.org/jAFgSvuC
580デフォルトの名無しさん:2008/11/22(土) 22:37:09
>>579
> >>570のはこう書き換えられるのに気がつきました。

そう書換えてはいけない。
あえて理由は言わないでおくから考えてみて。
581デフォルトの名無しさん:2008/11/23(日) 01:10:17
クオートとかクロージャとかマクロとかカリーとか、
そういうのは判ったから、そろそろそういうのに並ぶ新しい概念ってない?
582デフォルトの名無しさん:2008/11/23(日) 01:25:11
>>581
モナドとか?
583デフォルトの名無しさん:2008/11/23(日) 01:25:24
リフレクション?
584デフォルトの名無しさん:2008/11/23(日) 01:26:01
気ままに
585デフォルトの名無しさん:2008/11/23(日) 01:27:55
型はそろそろなんとかしてほしいな。
あとはD言語とかの表明とか?
新しくはないな。
586デフォルトの名無しさん:2008/11/23(日) 01:30:09
キチガイの人のところ見ればそれなりに見つかるんじゃない?
俺は気持ち悪くなるから見たくないけど。
587デフォルトの名無しさん:2008/11/23(日) 01:39:22
>>576-578
>>574ですサンクスです。
挙げていただいた本はいずれすべて読みたいです。
Littleが嫌になったわけではないです。とても面白いです。
むしろ早くSeasonedが読みたくて仕方ないです。
ただ、重いです。
情けないようですが、やっぱり理解しやすい日本語で
やさしく書いてあるものが読みたいのです。
Little8〜9章で結構難儀しまして、スレを参照しつつ
おかげ様でなんとか理解したかなと思いますが
だんだん難しくなってきてるのでSeasonedについていけるか不安なのですw
やさしい本を量を読みたいな、と。
でも2冊でひとつという事ですので今はSeasonedまでは読んじゃいます。
どうもでした。スレ汚しで失礼しました。
588デフォルトの名無しさん:2008/11/23(日) 02:30:54
このスレ、レベルが異常。
589デフォルトの名無しさん:2008/11/23(日) 02:33:06
モナドだな
590デフォルトの名無しさん:2008/11/23(日) 02:36:21
今どきArrowだろ常考
591デフォルトの名無しさん:2008/11/23(日) 02:37:39
モナド言われてたorz
じゃあアクターモデルとか
592デフォルトの名無しさん:2008/11/23(日) 02:40:52
アクターモデルは結構古い
593デフォルトの名無しさん:2008/11/23(日) 04:56:51
いっそ論理変数と単一化とか…
594デフォルトの名無しさん:2008/11/23(日) 05:20:33
>>590
ちょっとアローについておれに説明してくれんか?
595デフォルトの名無しさん:2008/11/23(日) 09:12:11
>>591
それSchemeじゃん
596デフォルトの名無しさん:2008/11/23(日) 09:39:36
戦国武将モナド元就が(ry
597デフォルトの名無しさん:2008/11/23(日) 11:31:47
>>564
つ相対完全性定理
598デフォルトの名無しさん:2008/11/23(日) 12:30:25
ゲーデルの不完全性定理にあるような自分で自分自身を
書き換えるなんてアブナイないことをしなければ
形式論理の範囲内で正当であることを示せるって考えて
もいいでしょうか?
599デフォルトの名無しさん:2008/11/23(日) 12:35:21
ゲーデルの不完全性定理の証明で使われた
自然数の体系は、最低限のものしか持ってないのに、
不完全性が証明されたのでみんな驚いた。

メタな記述に問題のあるような書き方だが、
体系の完全性等を証明したければ、
体系を形式的に記述する必要があるので、
どうしてもメタな記述を含むことになる。
形式的にやらないなら別だけど。
600デフォルトの名無しさん:2008/11/23(日) 12:46:43
ありえる全ての形式についてそれが正当か否かをその体系内で示すのは
(少なくとも自然数を体系に含むものであれば) 不可能なわけだけれど、
正当なもののサブセットを正当であると形式的に示すことはできるでしょう。
つまり、その体系内での証明器は、与えられた記述に対して「正当」「不当」「わからない」を返す。
このような証明器で、自分自身が与えられたら「正当」を返せるものが存在するのは自明だから
(自分自身と一致するものに対して「正当」、そうでなければ「わからない」を返せばよい)、
後はそのような証明器がどこまではっきり「正当」/「不当」を答えられるようになるかって
いう程度問題になるんじゃない?
601デフォルトの名無しさん:2008/11/23(日) 13:06:09
そのサブセットはチューリング完全でないですねわかります
602デフォルトの名無しさん:2008/11/23(日) 13:19:49
ありがとうございます。

うわ〜、難しいですね。

お聞きしたかったのは不完全性定理があるからといって
普通な(自己言及しない)数学の証明が破たんするものでも
ないと思うのでプログラムの正しさの証明も自分自身に言及
するものでなければ可能なのかなぁ?ということでした。

マクロって自分自身を変身させるんでこういうのって扱いが
面倒なんでしょうか。
603デフォルトの名無しさん:2008/11/23(日) 13:27:32
俺は自分が完璧であることを知っているが
それを証明する必要は無いってことか。

だって証明不可能だから。
604デフォルトの名無しさん:2008/11/23(日) 13:41:51
この流れ、個人的に\(^^)/
これからは、自己反映計算だ。
605デフォルトの名無しさん:2008/11/23(日) 14:17:05
流れに乗って質問です。ゲーデル不完全性定理の証明で出てくるような
逆説的自己参照現象を適用系(applicative system)と呼ぶそう
ですけど、ゲーデル以外に具体的にどういった適用系の例があるの
ですか?

606デフォルトの名無しさん:2008/11/23(日) 14:56:07
何このスゲー自演くさい流れ(爆)
607デフォルトの名無しさん:2008/11/23(日) 15:19:54
数学スレでやれ
608デフォルトの名無しさん:2008/11/23(日) 15:52:51
放っておけばくたびれるさw
609デフォルトの名無しさん:2008/11/23(日) 16:58:33
>>580
レス有り難う御座います。
どんな場合にまずいことがあるんでしょうか?
考えてみたんですけどわかんなかったです。
610デフォルトの名無しさん:2008/11/23(日) 17:03:15
LISPでお金儲け
したいです
可能ですか??
611デフォルトの名無しさん:2008/11/23(日) 17:18:34
「ばあちゃん?俺俺、俺だけど。
 ACLっての申し込んじゃって請求書きてて困っちゃってるんだ。
 お金振り込んでくれない?」
「おお、ケンジかい。ACLってなんだい?」
「あれだよLispだよ。コンピュータの、口座番号言うよ」
「ちょっと待っておくれ、メモ化しないと」
以下略
612デフォルトの名無しさん:2008/11/23(日) 18:42:30
遅延評価なので振込は引き出しが行われる時に初めて行われ
かつその1度しか行われません
613デフォルトの名無しさん:2008/11/23(日) 19:39:37
「ばあちゃん、ATMで↑みたいに言われたら
"身内の不幸"だって言うんだよ?
うちら家族の問題だから。あーー
あれだ、クロージャだよ」
614デフォルトの名無しさん:2008/11/23(日) 19:45:38
>「ちょっと待っておくれ、メモ化しないと」
微妙な受け答えにワラタ
615デフォルトの名無しさん:2008/11/23(日) 20:48:24
>>605
このスレ的にはDelta Calculusとか。
616デフォルトの名無しさん:2008/11/23(日) 20:53:45
>>610
可能です。
617デフォルトの名無しさん:2008/11/23(日) 20:56:24
めったに乗らない電車で女子高生の一群と遭遇
A「めっちゃ怖い話し聞いた」
その他「何?」
A「一人暮らしのうちのおばあちゃんに電話がかかてってきて
 出てみたら『お母さん?俺やけど・・・・』って言って
 おばあちゃんが『コンスセルか?』って聞いたら『うん』って・・・
 でも、コンスセルおじさんって去年、replacdrで死んでるねん」
その他「えぇ〜!!怖いーーー!!!それで?」
A「『・・・俺、replacdrして・・・・』って言うから、おばあちゃん泣いてしもて
 『replacdrの事は気にせんでいいから、もうガベージコレクトされて・・・・』言ったんやて」
その他「うっわー、怖い〜」「せつないーーー」「ほんまにあるんやなぁー、そんなGC」
618デフォルトの名無しさん:2008/11/24(月) 03:49:49
関西のLisp文化は凄いんだな。
619デフォルトの名無しさん:2008/11/24(月) 15:44:09
kishiwada.lisp
620デフォルトの名無しさん:2008/11/25(火) 12:15:21
common lispのスレがもう少しで落ちたりして
621デフォルトの名無しさん:2008/11/25(火) 13:22:50
schemeかlispをゲーム作りながら勉強したいんだけど
そういうライブラリってあるの?
622デフォルトの名無しさん:2008/11/25(火) 14:00:23
>>621
グラフィック出すだけのライブラリでいいなら、Gauche-glとかどうすか?
OpenGLの知識がいるけど。
623デフォルトの名無しさん:2008/11/25(火) 14:30:26
>>622
ありがとう!調べてみる
624デフォルトの名無しさん:2008/11/25(火) 16:00:26
Emacsでゲームをつくるという手もある
625デフォルトの名無しさん:2008/11/25(火) 19:09:45
これから出そう(?)なLisp本
「はじめてのCommon Lisp」
「図解でわかる Lispの全て」
「Lispの絵本」
「Lispで極めるゲームプログラミング」
626デフォルトの名無しさん:2008/11/25(火) 19:25:20
グラフィックとかGUIとかは、DrSchemeがお手軽っぽいけど、情報が少なくてどうにも。
627デフォルトの名無しさん:2008/11/25(火) 19:30:33
SICPの最初のほうにあるグラフィックいじるやつってgaucheでもできんの?
628デフォルトの名無しさん:2008/11/25(火) 19:43:44
>>626
本家に異様に充実したマニュアル群がある。

ttp://docs.plt-scheme.org/
629デフォルトの名無しさん:2008/11/25(火) 19:52:23
ついでに、Larcenyのところにあるベンチマークが面白かった。

ttp://www.ccs.neu.edu/home/will/Twobit/benchmarks.html

Ikarusやるなあ。
630デフォルトの名無しさん:2008/11/25(火) 19:54:23
名前がそれだとSunOSでコンパイルに失敗しそうだね
631デフォルトの名無しさん:2008/11/25(火) 20:10:12
>>629-630
ラッパ状に珈琲吹き出した
632デフォルトの名無しさん:2008/11/25(火) 20:14:58
>>627
ちょっと前にそのあたりを読んでいたのですが、
自分はSVGを出力させることにしました。
SVGはただのXML形式のテキストファイルですので。
ビットマップ画像を自分で生成して出力したい場合は、
PPM形式が単純でよいと思います。
自分の場合は出来合いの画像をSVGに並べただけですが。

むろんgauche-GLとか使ってもよいと思いますが、あの例には大げさに思えます。
633デフォルトの名無しさん:2008/11/25(火) 20:43:44
グレアムのANSI CLのレイトレーサの所でもPPM形式を使ってますね
634デフォルトの名無しさん:2008/11/25(火) 22:19:47
Vim+MZSchemeをインタフェース使ってる方っていらっしゃいますか?
Emacs Lispと比べてどんな感じですか?
if_mzschをベースにif_guileとかデッチ上げると幸せになれますか?
635634:2008/11/25(火) 22:20:25
をの挿入位置間違えました
Vim+MZSchemeインタフェースを使ってる方、です
636デフォルトの名無しさん:2008/11/25(火) 23:24:02
637デフォルトの名無しさん:2008/11/26(水) 13:20:24
>>634
if_*はVim scriptでできないことを補うためのもの。
if_*をバリバリに使うこともできるけど、標準では使えないという点で色々面倒。
Vim固有のことに首をつっこむならそれ用のAPIを介さないとダメで、
その辺が面倒臭くなりがちだから結局Vim scriptで書いた方が早いことが多い。
>>634が何をやりたいかにもよるけれど、腐っても最初からLispなEmacsの方が良いよ。

あとScheme系はMzScheme interfaceがあることから
他の処理系用のinterfaceを書いても下手したら見向きもされない。
これは自分がGauche interface書いてvim_devに投げたら総スルーだったこととか関係ありで。
638デフォルトの名無しさん:2008/11/26(水) 16:41:37
ブラックベリーやノキアでSchemeできないかなあ。
SchemeだけのためにPalm買うってのも何だし。
でも手軽に持ち歩いてどこでも勉強したい。ゲーム感覚で。
639デフォルトの名無しさん:2008/11/26(水) 17:19:23
つザウルス
NintendoDSでSchemeを動かしたって話が過去スレにあったような気も
640634:2008/11/26(水) 20:59:22
>>637
ありがとうございます、HP拝見させていただきました。
ソースは見られるけどtarやzipでダウンロードしようとするとNotFoundになりますね。
最近Emacs Lispでプログラムを書くのにストレスが溜まって来たので
VimをSchemeで制御できるのなら乗り換えようかと思った次第です。
とりあえず:guileコマンドだけ実装してみました。
(MSGを一回使わないと入力したコマンドが画面に残るのはなぜなんでしょう?)
641デフォルトの名無しさん:2008/11/26(水) 21:19:47
>>636
Gauche の公式サイトに置いてある mingw バイナリでは SDL って使えないの?
642デフォルトの名無しさん:2008/11/27(木) 01:03:50
Little Schemer面白い。
10代の頃に感じたコンピューテーションへのセンス・オブ・ワンダー
みたいなものがよみがえる。
ただ英語がどんな空気なのか読めないのが悔しい。
643デフォルトの名無しさん:2008/11/27(木) 01:11:16
Thundergirl Mutation
644デフォルトの名無しさん:2008/11/27(木) 04:00:18
Computed Stevie Wonder
645デフォルトの名無しさん:2008/11/27(木) 04:06:54
Little computed Stevie Wonder
646デフォルトの名無しさん:2008/11/27(木) 12:33:47
m(_ _)m
647デフォルトの名無しさん:2008/11/27(木) 14:35:45
slibの
matrix:product
が長い
mprod
mdet
minv
などの短い名前に変えると
何かと名前がぶつかることあるのか
648デフォルトの名無しさん:2008/11/27(木) 19:51:54
名前が長い等の問題はユーザーにまかせておけばいいやって感じだな。
マクロもそうだし、そもそも処理系を選ぶだけでもユーザーの負担が大きい。
649デフォルトの名無しさん:2008/11/28(金) 23:04:49
Emacs Lispが正規表現を文字列で記述することに対する不満は見かけるのに
Scheme(除くGauche、PLTScheme)やCommon Lispではさっぱり見かけないのが不思議だったのですが
Emacs Lispと違ってリーダマクロがあるからだったんですね(たぶん)
リーダマクロのあるScheme処理系が結構多いということをはじめて知りました
650デフォルトの名無しさん:2008/11/28(金) 23:20:15
Emacsはギャップバッファに対する正規表現サーチが
組み込み関数なんだよ。
ギャップバッファの性質上、(point)使って実装すると遅い。
Lisp/Schemeは、pregexpみたいなライブラリを自前で書いても
それほど速度は落ちない。まともなコンパイラさえあれば。
;; むしろpregexpは他言語のライブラリと比べても速い。
651649:2008/11/28(金) 23:44:30
あ、速度はともかく「バックスラッシュのお化け」なところです。
CLでppcreをコンパイルするとperlよりも速いそうですね。

リーダマクロについて調べてみたら
Gauche:ない
PLT, Guile, Chicken:ある
Gambit-C:リードテーブルはあるがリーダマクロの追加・編集はできない
のようです
652デフォルトの名無しさん:2008/11/28(金) 23:56:20
JavaやJavascriptもヒアドキュメントが欲しいってリクエストがあるな。
653デフォルトの名無しさん:2008/11/29(土) 00:13:08
>>651
たとえばprintf("%d", n);って書くでしょ
バックスラッシュやめて%を使えば解決
もしこれがprintf("\\d", n);だと大変だけど、文字列を使うこと自体は問題ない
654デフォルトの名無しさん:2008/11/29(土) 02:27:57
>>652
javascriptは解るがjavaでヒアドキュメントが必要な用途ってJSPか?
つか必要な事する段階で間違ってないか?

655デフォルトの名無しさん:2008/11/29(土) 03:24:32
なんでもやってみればいいのだ
LISPならそれが簡単にできるのだから!
656デフォルトの名無しさん:2008/11/29(土) 09:58:11
やりたいことはやったらえーがなー
657649:2008/11/29(土) 11:25:50
>>653
オレ表現とか書式文字列/formatテンプレートならそれでもいいかもしれませんが
正規表現ってバックスラッシュを多用しますよね?(私だけ?)
正規表現を文字列で表現するのが問題だというのではなくて
文字列として評価される時のエスケープシーケンスとしてのバックスラッシュと
正規表現としてのバックスラッシュが重なって読み辛くなるという話です。
そしてこれを解消するのはマクロでは無理で、リードマクロの力が必要になるということです。
658デフォルトの名無しさん:2008/11/29(土) 11:41:21
リーダマクロのないEmacs Lispだから置き換えを勧めているだけでは?
理解力ゼロ?
659デフォルトの名無しさん:2008/11/29(土) 12:03:34
651の言いたい事はそういう事か、やっと分かった。
理解力の問題か?
660デフォルトの名無しさん:2008/11/29(土) 12:04:15
ちがった、653ね
661デフォルトの名無しさん:2008/11/29(土) 12:29:08
リードマクロに健全なマクロ
マクロは広大だわ
662デフォルトの名無しさん:2008/11/29(土) 22:12:10
common lispスレは次は立てないで
もうこっちに統合でいいような気がする
663デフォルトの名無しさん:2008/11/30(日) 00:50:39
>>662
右も左もわからんようなのが来るとこっちのスレすぐに荒れるからやだ
664デフォルトの名無しさん:2008/11/30(日) 04:22:07
↑みたいなのが荒れる原因
665デフォルトの名無しさん:2008/11/30(日) 11:02:26
スレタイを肛門リスプにすればそっちの人が集まるだろ
666デフォルトの名無しさん:2008/11/30(日) 12:06:59
なんて破廉恥な。
667デフォルトの名無しさん:2008/11/30(日) 21:08:02
The prosecutor who blame other persons is usually a harasser.
668デフォルトの名無しさん:2008/11/30(日) 21:53:38
>>667
訳:
他人を非難する人というものは大概にして害なる存在である。いないほうがまし。
669デフォルトの名無しさん:2008/11/30(日) 22:16:50
>>667-668
すれ違いさようなら
670デフォルトの名無しさん:2008/12/01(月) 00:14:27
どうやら>>665はスレ違いでないようです(><)←John McCarthy
671デフォルトの名無しさん:2008/12/01(月) 15:46:15
非難とかスレ違いとか形式的な基準だけで良し悪しが全て決まるわけではないな

非難ってのは既存のものに言及するだけで新しい発見が少ない傾向があるかもしれない
けど、例外はいくらでもあるし、意図的に例外を作り出すこともできる

意図的に糞言語を選んでキラーアプリを作ってみせる人間もいるかもな
672デフォルトの名無しさん:2008/12/02(火) 22:28:33
「ちょっと変わったLisp入門」の第2回っていつ出るの?
673デフォルトの名無しさん:2008/12/02(火) 23:32:53
                           ,r;;;;ミミミミミミヽ,,_
                         ,i':r"    + `ミ;;,
       __,、           ≡     彡        ミ;;;i
    〃ニ;;::`lヽ,,_           ≡  彡 ,,,,,、 ,,,,、、 ミ;;;!
    〈 (lll!! テ-;;;;゙fn    __,,--、_  ..   ,ゞi" ̄ フ‐! ̄~~|-ゞ, ≡
   /ヽ-〃;;;;;;;llllll7,,__/"  \三=ー"."ヾi `ー‐'、 ,ゝ--、' 〉;r'  ≡  自分自身を客観的に見ることはできるんです
   >、/:::/<;;;lllメ   \ヾ、  ヽTf=ヽ  `,|  / "ii" ヽ  |ノ
  j,, ヾて)r=- | ヾ:   :ヽ;;:     | l |  l  ''t ←―→ )/イ^    ≡ あなたとは違うんです
 ,イ ヽ二)l(_,>" l|    ::\;::    | |  |  ヽ,,-‐、i'  / V
 i、ヽ--イll"/ ,, ,//,,    :;;   l //  l く> /::l"'i::lll1-=:::: ̄\   ≡ 花深く咲く処 行跡なし
 ヾ==:"::^::;;:::/;;;;;;;;;:::::::::::::: :::::ゞ ノ/   L/〈:::t_イ::/ll|─-== ヾ
  \__::::::::/::::::::::::_;;;;;;;;;;;;;;;;;ノノ   ヘ   >(゙ )l:::l-┴ヾ、ヽ  )
      ̄~~ ̄ ̄/ :::|T==--:::::  //  / ト=-|:|-─ ( l   /
         / ::  ::l l::::::::::::::::::/ /:::::::::::/:::::(ヽ--─  / |  /
         ヽ_=--"⌒ ゙゙̄ヾ:/ /:::::::/:::::::::`<==-- ノ / /
674デフォルトの名無しさん:2008/12/03(水) 21:00:46
ttp://d.hatena.ne.jp/higepon/20081203/1228303268

⊂_ヽ、
  . \\ Λ_Λ
     \ ( ´Д`)
    . >  ⌒ヽ
    /    へ \
   /     /   \\
   レ  ノ     ヽ_つ

とか禁止な。
675デフォルトの名無しさん:2008/12/03(水) 21:26:17
なんて読むの?喪主?藻ッシュ?モーシュ?
676デフォルトの名無しさん:2008/12/03(水) 22:43:43
Little Schemerの日本語訳があったんだな
大学で見て驚いた
677デフォルトの名無しさん:2008/12/04(木) 04:52:42
>>674
SICP の eval-apply の図っぽさが欲しい
678デフォルトの名無しさん:2008/12/04(木) 07:14:38
逝ってよしオマエモナー逝ってよしオマエモナー…
超循環モナギコ評価器は2chカキコの本質を見せる。
679デフォルトの名無しさん:2008/12/04(木) 16:20:40
>>671
初期のSmalltalkはBasicで書かれていたらしいですね。
680デフォルトの名無しさん:2008/12/04(木) 16:58:27
初期のLispはFortranで、とかそういう話か
681デフォルトの名無しさん:2008/12/04(木) 17:02:32
Lispが出来た頃ってアセンブラとFORTRANぐらいしか
選択肢なかったんでないの
682デフォルトの名無しさん:2008/12/04(木) 18:26:12
「1958年後半に、マッカーシーの大学院生の一人であった
スティーブ・ラッセルがevalの定義を見ていて、
これを機会語に変換すればLispインタプリタが
できるじゃないか、と思いついたんだ。」
ハッカーと画家 P.188
683デフォルトの名無しさん:2008/12/04(木) 18:29:28
マカーシー「つまり、彼は私の論文のevalを[IBM]704の機械語になおして、
バグをとり、それをLispインタプリタと称したんだ。実際そうだった。
それが、Lispが現在の姿を取った瞬間だった。」
ハッカーと画家 P.189
684デフォルトの名無しさん:2008/12/04(木) 22:34:22
実装言語がなんだろうと関係ない。作ってそれからどうするの?
ということが問題なんだよ。
685デフォルトの名無しさん:2008/12/04(木) 22:45:17
準備できたら、やっぱりいいことするんじゃないか
686デフォルトの名無しさん:2008/12/05(金) 01:13:16
考えてみたらScheme出来るまで20年経ってるんだね。
687デフォルトの名無しさん:2008/12/05(金) 22:21:25
R10RSを完全に満たしたScheme処理系でたら本気出す。
688デフォルトの名無しさん:2008/12/05(金) 22:27:19
R2↑↑10RSを満たすScheme処理系が出るまで死なぬ
689デフォルトの名無しさん:2008/12/05(金) 22:47:34
じゃ俺はR∞RS出るまで待つ。
690デフォルトの名無しさん:2008/12/05(金) 22:52:23
第10法則を満たす処理系なら既にあるはずだ
691デフォルトの名無しさん:2008/12/05(金) 22:56:35
R10RS=Common Lisp
692デフォルトの名無しさん:2008/12/05(金) 23:00:07
結論:Common Lispを使え。
693デフォルトの名無しさん:2008/12/05(金) 23:00:24
RωRS が出るまで寝ない。
694デフォルトの名無しさん:2008/12/05(金) 23:02:07
>>688
>>693
巨大数スレの住人か?
695デフォルトの名無しさん:2008/12/05(金) 23:04:44
終わった。
696デフォルトの名無しさん:2008/12/06(土) 00:34:07
今まさにRεRSが生まれようとしています。
697デフォルトの名無しさん:2008/12/06(土) 03:34:34
わずかな前進だなw
698デフォルトの名無しさん:2008/12/06(土) 04:58:06
Little読んだぽっくんはR0.0001RSぐらいかな。
Schemer13章に入った(・ε・)ワズカニ前進
699デフォルトの名無しさん:2008/12/06(土) 12:47:45
すでにR6RSまで出てますよ。
700デフォルトの名無しさん:2008/12/06(土) 13:20:06
Schemeは、括弧が多くて、機能が少ない言語でした。
701デフォルトの名無しさん:2008/12/06(土) 19:20:08
>>696
びぶん!
702デフォルトの名無しさん:2008/12/06(土) 19:23:22
http://ja.uncyclopedia.info/wiki/%E5%86%8D%E5%B8%B0
末尾再帰も誰か作ってください
703デフォルトの名無しさん:2008/12/06(土) 19:38:51
>>696
> RεRS
10秒くらい見つめてたら、眼鏡かけたオタが泣きながら口笛吹いてるように見えた。
704デフォルトの名無しさん:2008/12/06(土) 19:57:20
(・δ・)
705デフォルトの名無しさん:2008/12/06(土) 20:11:38
>>703
最初からそのようにしか見えなかった
706デフォルトの名無しさん:2008/12/06(土) 21:06:47
今夜ε-δ論法を語るスレはここですね
707デフォルトの名無しさん:2008/12/07(日) 00:23:33
ところがここでR1iRSの登場ですよー
708デフォルトの名無しさん:2008/12/07(日) 00:25:22
規格間の連続性を厳密に定義するわけですね
709デフォルトの名無しさん:2008/12/07(日) 01:31:06
アキレスの亀による仕様の実装はいつまでも終わらない
710デフォルトの名無しさん:2008/12/07(日) 02:59:54
処理系を作る以外にSchemeでやることなんてないだろう。
711デフォルトの名無しさん:2008/12/07(日) 03:03:15
処理系作れるなんて素敵やん。
712デフォルトの名無しさん:2008/12/07(日) 14:43:21
それで、作ってそれからどうするの?
713デフォルトの名無しさん:2008/12/07(日) 14:44:55
>>712
名前を売って、IT業界でのし上がる
714デフォルトの名無しさん:2008/12/07(日) 16:27:04
それで、のしあがってからどうするの
715デフォルトの名無しさん:2008/12/07(日) 16:33:58
それからエディタ作る。
716デフォルトの名無しさん:2008/12/07(日) 16:58:06
のし上がってどうするかは
人の勝手
717デフォルトの名無しさん:2008/12/07(日) 17:04:43
世の無常を感じて仏門に入る
718デフォルトの名無しさん:2008/12/07(日) 17:32:33
政界に入って世界征服する
719デフォルトの名無しさん:2008/12/07(日) 17:34:18
おれはみんなを幸せにしたい。
720デフォルトの名無しさん:2008/12/07(日) 17:37:45
台所で切れていることに気付いたコーヒーを買いに行く
721デフォルトの名無しさん:2008/12/07(日) 18:38:58
のし上がって悠々自適になったら、好きなだけ言語開発ができるな。
722デフォルトの名無しさん:2008/12/07(日) 19:12:03
たとえばscheme処理系を作るとか?
723デフォルトの名無しさん:2008/12/07(日) 19:38:39
今行うべきは、Schemeで一体何をするのが決めることだよ。
724デフォルトの名無しさん:2008/12/07(日) 19:45:54
そういう金になる話はこんなとこには出てこないよ
725デフォルトの名無しさん:2008/12/07(日) 19:46:47
Schemeは、数学、SICP,計算機科学がどうのこうのとか、継続が〜等々、
単なる言語なのにやたらノイズが多かった。
それらノイズが無くなれば、Schemeなんて単なる機能の乏しい言語だよ。
どう活用するのか決めないことには未来は無いだろ。
ひたすらノイズを楽しむというのも一つの答えではあるけど、
そんなの馬鹿馬鹿しいと思わない?
726デフォルトの名無しさん:2008/12/07(日) 19:48:36
>>724
そう思うのならそれでおしまい。
ただ、それも一つの答え。
727デフォルトの名無しさん:2008/12/07(日) 19:51:49
>>725
そんな言語だとして、こうして人がいるのはなんで?
お前はなぜこのスレに書き込んでる?
728デフォルトの名無しさん:2008/12/07(日) 19:55:19
schemeと何か
という組み合わせ問題を解けばわかるよ
729デフォルトの名無しさん:2008/12/07(日) 19:57:03
>>725
因果が逆。君の言う「ノイズ」の結果がSchemeだろ。
730デフォルトの名無しさん:2008/12/07(日) 19:57:50
>>725
おもわない。面白くないなら止めればいい。
731デフォルトの名無しさん:2008/12/07(日) 19:59:03
>>725
おもわない。面白くないなら止めればいい。
732デフォルトの名無しさん:2008/12/07(日) 19:59:05
schemeはCLをGCしたら出来た言語
733デフォルトの名無しさん:2008/12/07(日) 20:10:23
そういう意味でC言語って成功した言語だよね。
ハードウェア寄りの記述もできるのにあまり大きくならなかったし、
色んな環境に移植されてる。
こうして見るとやっぱGCがネックなのがわかる。
処理系をGCレスで作れば色んなとこで使えると思う。
734デフォルトの名無しさん:2008/12/07(日) 22:23:41
>>733
managedな部分とunmanagedな部分を分離する?
その場合は2つ以上の言語を組み合わせるのが普通だよな

単一の言語でやろうとすればC++の二の舞になる予感が
735デフォルトの名無しさん:2008/12/07(日) 22:44:32
あらかじめ静的にあれば動的なメモリ確保なんてほとんど使わないっしょ
ゲームとか組み込みとか
それよ
736デフォルトの名無しさん:2008/12/07(日) 22:47:38
いつの時代のゲームだよ。
737デフォルトの名無しさん:2008/12/07(日) 22:48:25
全部without-gcingすれば?
738デフォルトの名無しさん:2008/12/07(日) 23:40:11
consの扱いに困る。
人間のこなせる煩雑さではなくなってしまう。
739デフォルトの名無しさん:2008/12/07(日) 23:43:16
>>738
ブロックで囲めばいいんでは。
必要なものはブロック内でマークしといて、
それ以外のブロック内で確保されたやつは抜けた時に全部削除。
740デフォルトの名無しさん:2008/12/07(日) 23:56:07
>>736
今のゲームでも最大長みたいなのは判ってるから
固定プール内でやる事が多いよ。
あまり時代に関係ないと思うが。
741デフォルトの名無しさん:2008/12/08(月) 00:00:50
>>739
関数やブロック内で寿命を終えるコンスセルの方が圧倒的に少ない。
742デフォルトの名無しさん:2008/12/08(月) 00:07:33
そりゃわがままだろ
743デフォルトの名無しさん:2008/12/08(月) 01:25:53
gosh> (use slib)
#<undef>
gosh> (require 'trace)
*** ERROR: connot find file "d:\\gauche\\share\\gauche\\site\\lib/slib/trace" to load
Stack Trace:
_____________________________
gosh> (require 'trace)
#t
gosh> trace
*** ERROR: unbound variable: trace
Stack Trace:
_____________________________
になるんですがどうしたらtraceつかえますか
744デフォルトの名無しさん:2008/12/08(月) 01:29:01
連レス失礼します。
環境はWindows XPでMeadow21.4.1です。
745デフォルトの名無しさん:2008/12/08(月) 01:36:55
>>743
おそらくだが、slibcat を一旦削除すれば良いと思う。
slib 自体のインストールは出来てるよな?
746デフォルトの名無しさん:2008/12/08(月) 01:37:55
ここはGaucheサポート掲示板じゃないから
747デフォルトの名無しさん:2008/12/08(月) 01:59:13
>>745
ありがとうございます!一発解決しました!

>>746
すみませんm(_ _;)m
748デフォルトの名無しさん:2008/12/08(月) 15:19:34
論理否定が理解できるなら継続も理解できる筈って言われたんだけどマジですか?
749デフォルトの名無しさん:2008/12/08(月) 15:24:00
カリー、ハワードの対応とかいうあれ?
750デフォルトの名無しさん:2008/12/08(月) 15:36:40
論理否定も継続も理解してるつもりだが、相関はわからん。
カリー・ハワードを勉強すればわかるの?
751デフォルトの名無しさん:2008/12/08(月) 22:30:03
752デフォルトの名無しさん:2008/12/08(月) 23:23:32
Curry-Howard の概観なら、これとか判り易かった。
http://www.kmonos.net/wlog/61.html#_0538060508
753デフォルトの名無しさん:2008/12/08(月) 23:30:15
という用語を作り、SF ファンとして有名なフォレスト・J・アッカーマン氏が 12 月 4 日に 92 歳で死去したそうだ
754デフォルトの名無しさん:2008/12/08(月) 23:35:19
アッカーマン関数の?
755デフォルトの名無しさん:2008/12/09(火) 07:38:17
http://lining.kir.jp/internet/internet16.html
> Common Lisp
有名な話なのかな。やっぱりAllegroなのかな。
756デフォルトの名無しさん:2008/12/09(火) 07:38:33
ほう、newlisp10.0が来ましたな
757デフォルトの名無しさん:2008/12/09(火) 11:15:05
>>754
そっちはヴィルヘルム・アッカーマン。
758デフォルトの名無しさん:2008/12/09(火) 11:31:51
>>734
他の言語との連携が前提なら処理系ごとに違うffiをなんとかしてください
759デフォルトの名無しさん:2008/12/09(火) 12:27:39
>>758
統一できるかどうかは直接は関係ないと思うんだ。
問題があるとすれば "ad hoc, informally-specified, bug-ridden, slow" のどれか。
760デフォルトの名無しさん:2008/12/09(火) 23:24:54
>>755
おそらく湾岸戦争の兵站支援システムのことだろうね。Allegroです。
他にも軍の研究所とかがたまに人を募集していたなぁ。
761デフォルトの名無しさん:2008/12/10(水) 01:29:49
>>760
Lispハカーの募集をしていたということですか?
762デフォルトの名無しさん:2008/12/10(水) 17:46:47
>>760
ある程度大きいもの作ろうとするとnamaspaceありのcommon lispになるのか

emacs lispがnamespaceなしでなんとなってるのはなんでだろう
763デフォルトの名無しさん:2008/12/10(水) 18:01:58
後方互換性という名の呪縛
764デフォルトの名無しさん:2008/12/10(水) 19:13:06
「世界で一つだけの、自分で作る手作り中央銀行」
ってプロジェクトをPHPでやってるんだけど、興味ある?
765デフォルトの名無しさん:2008/12/10(水) 19:36:42
omoti 何やってんの?
766デフォルトの名無しさん:2008/12/10(水) 19:59:57
>>763
「emacs lispがnamespaceなしなのはなんでだろう」じゃなくて
「emacs lispがnamespaceなしでなんと”か”なってるのはなんでだろう 」では?
767デフォルトの名無しさん:2008/12/10(水) 21:40:52
その前にnamaspaceへ突っこめ
768デフォルトの名無しさん:2008/12/10(水) 22:48:09
懐かしい名前が出たなおい
769デフォルトの名無しさん:2008/12/10(水) 23:32:21
>>748-750
とりあえず、第五世代コンピュータの成果本読んでみてからだよ。
せっかく和書で読めるんだし。
770デフォルトの名無しさん:2008/12/10(水) 23:41:39
>>755
理論だけやって、応用をやらなかったら廃れる。
無意味に理論を追求しても、残るものは少ない。
771デフォルトの名無しさん:2008/12/11(木) 01:05:26
概観を知ってもコードが書ける訳じゃないし。別にどうでも良いかな。
772デフォルトの名無しさん:2008/12/11(木) 02:16:02
773デフォルトの名無しさん:2008/12/11(木) 03:31:39
あんな馬鹿な値段で買わなくても図書館で読めるよ。
扱うLISPの仕様や実装が古臭いから、今読むと混乱するかもしれないし、
あんまり大したこと書いてないよ。
流し読み程度でいいんじゃないかね。
774デフォルトの名無しさん:2008/12/11(木) 05:54:26
>> 仕様や実装が古臭い
が、どういうことなのか解らないくらいの知識しかないけど、
今の時代に合った、Lispの処理系の作成本とか、読みたいな。
775デフォルトの名無しさん:2008/12/11(木) 06:46:38
>>774
蓑輪太郎氏のブログでも読んでみれば?
776デフォルトの名無しさん:2008/12/11(木) 08:26:29
>>772
これは私も持っていますが、今読む価値があるとは思えません。
当時と違って、ソースは幾らでも手に入るし、
blogを通して作者と会話できる時代ですから。
777デフォルトの名無しさん:2008/12/11(木) 08:36:02
>blogを通して作者と会話できる時代ですから。
週一更新のページで三日返事がないとか言ってぶち切れる人とか怖いです
778デフォルトの名無しさん:2008/12/11(木) 08:48:04
処理系の利用者を大切にしてない(笑)
779デフォルトの名無しさん:2008/12/11(木) 08:48:51
処理系作成本は売れるのかな・・
780デフォルトの名無しさん:2008/12/11(木) 08:52:50
その本のはいわゆる俺LISPだな。
当時は処理系実装自体が珍しかったのか本になってるけど、
実装としてはあまり見所はない。
ソース読みたいならmini-schemeのソースでも読んだ方がいい。
1日あれば読める程度の規模でスタックレスで末尾再帰でフル継続だ。
781デフォルトの名無しさん:2008/12/11(木) 09:47:13
MLやん!
782デフォルトの名無しさん:2008/12/11(木) 10:36:25
>>769
>第五世代コンピュータの成果本読んでみてからだよ。
kwsk
なんか絶版になったのしかみつからなかった
783デフォルトの名無しさん:2008/12/11(木) 20:35:20
スタックレスでついでにメモリプールも使えば、副作用だらけですな。
副作用を根絶するというより、よくあるパターンに落とし込むことでバグを防ぐ
という方が正しいと思わないか?
784デフォルトの名無しさん:2008/12/11(木) 21:59:16
は?
785デフォルトの名無しさん:2008/12/11(木) 22:51:31
メモリの割り当てが副作用ならconsにも副作用があることになる。
副作用とは何か?
俺達は何と戦っているのか?
786デフォルトの名無しさん:2008/12/11(木) 23:11:12
"Come, learn to fish!" Guy L Steele
787デフォルトの名無しさん:2008/12/12(金) 12:02:15
もし誰かにつりを教えたらその人は川か海でつりをするだろう。
もし誰かに養殖を教えたらその人はいくらでも魚を増やすだろう。
788デフォルトの名無しさん:2008/12/12(金) 17:56:37
>>785
同じ引数に同じメモリセルを返すconsなら参照透明だから
(eq? (cons #t #t)  (cons #t #t)) => #t
789デフォルトの名無しさん:2008/12/12(金) 19:40:18
それって理論が破綻してない?
実装的にはわかるけどさ
790デフォルトの名無しさん:2008/12/12(金) 20:52:16
後藤先生のHLISPってそんな感じじゃなかったっけ >>788
副作用無しで使うならセマンティクスも別に問題にならないと思う。
791デフォルトの名無しさん:2008/12/12(金) 21:59:12
>>789
>それって理論が破綻してない?

全然。むしろ昔の数学的。
792デフォルトの名無しさん:2008/12/12(金) 22:03:56
>>790
HLISPはHCONSしたときだけ。
793デフォルトの名無しさん:2008/12/12(金) 22:36:32
そのHCONSにはポインタの循環がないからGCレスにできると思うのだが、
純粋関数型言語はGC不要なの?
794デフォルトの名無しさん:2008/12/12(金) 22:48:14
メモ化とか再帰のための循環参照をなくせば参照カウントにできると思います
でもHaskellとか水面下で副作用を行う言語ではGCは必要です
795デフォルトの名無しさん:2008/12/12(金) 23:06:38
別にどうでもいいトリビアだが、いわゆる参照カウント方式もGCの一種だ。
796デフォルトの名無しさん:2008/12/13(土) 18:20:22
GCがなくてすむってのは、全部スタック上の一時変数で済むってことかな?
表面的な文法でなくて、本当に純粋に関数的な言語(プログラム)なら可能だと思うが、
それは道具として使い物にならないという話だと思う
797デフォルトの名無しさん:2008/12/13(土) 19:40:35
ダイナミックであろうがレキシカルであろうがクロージャがある以上
(参照カウントを含む)GCなしのスタックだけには出来ないと思います
そもそもコンスセルを返す関数がある限りGCは必要なのでは

もっとも解放をあきらめるとか、明示的な解放に頼るなら別ですが
798793:2008/12/13(土) 21:23:15
訂正します
参照カウントは使っていいです
boehmとかはだめです
799デフォルトの名無しさん:2008/12/13(土) 22:43:00
>>798
何が聞きたいのかよくわからん

「ポインタの循環がないから、巡回チェック不要の参照カウントでOK?」
という質問か?
「巡回チェック不要の参照カウンタ」 が嬉しいのか?
(まぁ手間が省けるのは確かだが、だからといってCONSがどうとかは意味不明)

それとも、循環参照があると参照カウンタは使えないと思い込んでいるのか?

はたまた、「同じ引数には同じCONSセルを返す」 から、その引数は
永遠に固定メモリ領域においておけばよいからGC不要?みたいな発想かな。

すまんエスパーしすぎた
800デフォルトの名無しさん:2008/12/13(土) 23:21:46
>循環参照があると参照カウンタは使えないと思い込んでいるのか?

そうです
それと、boehm gcの移植が不可能だと思い込んでいる、というのもあります
801デフォルトの名無しさん:2008/12/13(土) 23:29:06
>>800
どんなプラットフォームに移植しようと思ったんですか?
802デフォルトの名無しさん:2008/12/13(土) 23:56:46
質問です。
ラムダ計算の分野と
コンパイラ作成や最適化の分野って
同じ?違う?
803デフォルトの名無しさん:2008/12/14(日) 00:31:57
>>801
Z80
804デフォルトの名無しさん:2008/12/14(日) 01:48:18
>>793
実装の問題と仕様の問題を取り違えている。
805デフォルトの名無しさん:2008/12/14(日) 01:49:04
>>802
ラムダ計算を使って、
コンパイラを作ったり、最適化をしたりする「ことがあります」
806デフォルトの名無しさん:2008/12/14(日) 15:40:06
俺たちは今まで一体何をしてきたんだ・・・。
807デフォルトの名無しさん:2008/12/14(日) 18:38:05
勉強したラムダとはよく言ったもの
808デフォルトの名無しさん:2008/12/14(日) 18:39:51
誰がうまいこと言えと(ry
809デフォルトの名無しさん:2008/12/14(日) 21:15:09
>>802
>>805
確かに、「使う」 ことはあるかもしれんが、たぶん>>802の聞きたい
「分野」 という意味においては 「まったく別」 が答えになるんジャマイカ
810デフォルトの名無しさん:2008/12/14(日) 21:34:50
コンパイラの最適化としてのラムダ式の変形が、
サイモンペイトンジョーンズ先生@MSリサーチの博士論文。
ガイスティール先生の
> Rabbit: A Compiler for Scheme
も似たような話。
811デフォルトの名無しさん:2008/12/14(日) 21:53:45
いまのコンピュータはチューリングマシンのエミュレータとかいいますから
ラムダ算法マシンでは役に立つんじゃないでしょうか
812デフォルトの名無しさん:2008/12/14(日) 22:12:25
>>810
PLTの人たちはRabbitのあとを続けるような研究もやってるね。
813デフォルトの名無しさん:2008/12/14(日) 23:18:35
今日現在までのところ最適化とラムダの間には直接の関係は何もない。
もしラムダみたいなものやリスプみたいなものが最適化の話にでてきたとしても・・・それは単に実装に便利だからというだけの話。
しかし、もし、アセンブラのニーモニックにlambdaとか入る時代になることがあれば話も違ってくると思われる。
一目でいいから拝ませてほしい。
814デフォルトの名無しさん:2008/12/14(日) 23:32:05
ぷげら
815デフォルトの名無しさん:2008/12/15(月) 01:33:58
極度に抽象化されたアセンブラか
あんたそりゃLispやがな
816デフォルトの名無しさん:2008/12/15(月) 04:14:21
抽象化されたアセンブラって
817デフォルトの名無しさん:2008/12/15(月) 10:14:14
つ C--
818デフォルトの名無しさん:2008/12/15(月) 23:18:42
RTL
819デフォルトの名無しさん:2008/12/17(水) 22:21:29
会λλλ
820デフォルトの名無しさん:2008/12/18(木) 01:01:51
(´・λ・`)
821デフォルトの名無しさん:2008/12/18(木) 17:32:17
on lispでsicpをclassicalな本って言ってるんだけど
そんな位置づけなの?
822デフォルトの名無しさん:2008/12/18(木) 17:34:20
まぁ細かいところでは色々と古い。#t とか #f とかないし。
823デフォルトの名無しさん:2008/12/18(木) 17:50:40
>>821
そりゃま古典でしょ。
824デフォルトの名無しさん:2008/12/19(金) 02:03:36
Schemeはラテン語みたいなものだ。
そういう意味ですか?(´・ω・`)
825デフォルトの名無しさん:2008/12/19(金) 02:49:07
格調高いという意味では。
826デフォルトの名無しさん:2008/12/19(金) 15:34:10
みなさん、SCIPより古いコンピュータ本で、
SCIPより最近の参照回数が多い本ってある?
俺はないわ。
ドラゴンブックやKnuthのアルゴリズム本は、
ずっと参照回数が少なくなってる。
D+A=Pなんて昔は良く参照したのに…
827デフォルトの名無しさん:2008/12/19(金) 15:53:58
それらは中身はあんまり見ないけど、
本棚に並んでる背表紙をチラ見してニヤニヤすることは良くある。
828デフォルトの名無しさん:2008/12/20(土) 17:42:26
ちょっと違うけど"R5RS-ja"と"Recursive Functions of Symbolic Expressions and their Computation by Machine"は印刷して持ち歩いて読んでました
(前者はSICPより後ですが)

早くR6RS版Scheme48が出ないかなぁ
リリースの間隔が開いてる所を見ると今度こそR6RS版になるのかなぁ
出たらR6RSを読み始めよう
829デフォルトの名無しさん:2008/12/20(土) 20:48:51
Scheme48の48ってどういう意味なの?
830デフォルトの名無しさん:2008/12/20(土) 20:52:37
>>829
思い立ってから48時間で出来ますた、の48

マニュアルに書いてあるよ。
831デフォルトの名無しさん:2008/12/20(土) 23:37:40
>>826
SCIPに誰も突っ込まないのな
まさかskipとか言うオチ?
832デフォルトの名無しさん:2008/12/21(日) 00:43:08
>>830
アタマのいい人ってのはすげぇなぁ
833デフォルトの名無しさん:2008/12/21(日) 09:58:19
>>832
(ノ´∀`*) テレル
834デフォルトの名無しさん:2008/12/21(日) 10:19:23
「HaskellでSchemeを48時間」、
Exerciseを全部やったとは言え、
480時間くらいかかった俺が通りますよ
835デフォルトの名無しさん:2008/12/22(月) 03:55:40
codepad.orgのサーバーの能力を計測してみた。

http://codepad.org/ECYEp0w8
Timing per iterations: 100
cpu time: 260 real time: 1219 gc time: 90

参考までに自宅PCの結果を晒してみるwww
Timing per iterations: 100
cpu time: 1282 real time: 1297 gc time: 78
836デフォルトの名無しさん:2008/12/22(月) 04:04:36
>>835
書き忘れた。
自宅のはCeleron 2.66Ghz。
サーバーのCPUって何だろう?
837デフォルトの名無しさん:2008/12/22(月) 09:15:07
速度差が五倍ぐらいだからCore2Duoジャマイカ?
と思ったけど
http://codepad.org/xVGG7r0w
やってみたらもっと速くなった。Core4Quadか?
838デフォルトの名無しさん:2008/12/22(月) 11:02:22
Dual-Core AMD Opteron(tm) Processor 2218 HEのようですね
ttp://codepad.org/QLNrvm3p
839デフォルトの名無しさん:2008/12/22(月) 23:28:51
>>838
ありがとうございます
840デフォルトの名無しさん:2008/12/23(火) 20:56:20
「Let Over Lambda」ってどうなの?
841デフォルトの名無しさん:2008/12/23(火) 21:32:23
2CHで レス番+名前の行をWクリックで折り畳む機能っていつからついたの?
842デフォルトの名無しさん:2008/12/23(火) 21:36:28
1年前
843デフォルトの名無しさん:2008/12/24(水) 17:36:19
Cへのembedding ができるのはgoshだけ?
844デフォルトの名無しさん:2008/12/24(水) 18:15:43
やればみんなできるんじゃないか?
あとgoshはREPLを起動するプログラムの名前なので、その文脈ではGaucheと
呼ぶのが正しい。
845デフォルトの名無しさん:2008/12/24(水) 18:20:41
正しい綴りではないけど発音は同じになってる。
846デフォルトの名無しさん:2008/12/24(水) 18:27:47
ガウチェ(・∀・)
847デフォルトの名無しさん:2008/12/24(水) 19:45:12
>>843
何でGaucheだけだと思ったのかは知らないけど、
PLTとかも普通にできるよ。ドキュメントにやり方がきちんと載ってる。
848デフォルトの名無しさん:2008/12/24(水) 19:49:29
gosh ごっしゅ
Gauche ごーしゅ
って言い分けない?
849デフォルトの名無しさん:2008/12/24(水) 19:51:42
goshだと「ガシュ」って読めると思うけど
850デフォルトの名無しさん:2008/12/24(水) 20:10:06
Oh My Gosh!
851デフォルトの名無しさん:2008/12/24(水) 21:39:23
怖い怖い怖い。
852サンタクロージャ:2008/12/25(木) 03:04:24
みなさんの大好きなアレおいておきますね。


つ()
853デフォルトの名無しさん:2008/12/25(木) 04:06:24
gosh    [ga∫]
Gauche [gou∫]
854デフォルトの名無しさん:2008/12/25(木) 15:21:44
>>852
名前でワラタ
855デフォルトの名無しさん:2008/12/26(金) 02:44:06
なんでもoutline-modeのコード折畳みがlispにも欲しいと思った
856デフォルトの名無しさん:2008/12/26(金) 15:37:09
common lisp関係のパッケージのバージョン管理がgitになっていた
svnはもう古いのだろうか
857デフォルトの名無しさん:2008/12/26(金) 18:43:18
Gaucheでメタプログラミング第2回が10日近く前に出てましたね
858デフォルトの名無しさん:2008/12/27(土) 03:17:17
もういいだろ、やめとけよ。
859デフォルトの名無しさん:2008/12/28(日) 12:35:05
質問です
ifを使うときに
set!をたくさん使ってカッコが増えると
うまくいきません
let*でくくろうにも複雑になり過ぎて
わかりにくくlet*の外にも引き渡す値が多いのでそれもうまくいきません
どうすればいいんでしょうか?

(if (eqv? tate-on TRUE) ; 条件判定
; 縦書きの時
(
;;縦書き
(set! mojisu(string-length text)) ;文字列の長さを数える
(set! i 0)
(while (< i mojisu)
  (set! moji(substring text i (+ i 1)))
(set! mojitotyu (string-append mojitotyu "\n" moji))
(set! i (+ i 1)))
(set! mojisu(string-length mojitotyu))
(set! text (substring mojitotyu 1 mojisu))
(display "縦書き")
)
(display "横書き"); 横書きの時

)
860デフォルトの名無しさん:2008/12/28(日) 12:41:29
つ begin
861859:2008/12/28(日) 12:49:19
ありがとうございます!
ifの分岐の中にbeginをいれてやってみます
862デフォルトの名無しさん:2008/12/28(日) 13:11:30
sage進行でヨロ
http://codepad.org/XnqRbNSY
863デフォルトの名無しさん:2008/12/28(日) 13:47:19
864デフォルトの名無しさん:2008/12/28(日) 14:15:54
コードパッドに貼るのは良いけど、アンカーと一行説明くらい書いてくれ。
865デフォルトの名無しさん:2008/12/28(日) 14:31:02
> (printf (regexp-replace* "(.)" "hello" "\\1\n"))
h
e
l
l
o
866デフォルトの名無しさん:2008/12/28(日) 18:10:45
condを使えばbeginはいらない
http://codepad.org/cGV6ISco
867859:2008/12/28(日) 21:42:43
あれいつの間にこんなにレスがあってびっくりしてます。
>865
自分の使ってるGIMPというフリーソフトのscript-Fuという
Schemeっぽいのでやってるんですが
Error: eval: unbound variable: regexp-replace*
Error: eval: unbound variable: printf
でしたOTL

すいません、また質問なんですけど
型の違う変数どうしを計算するにはどうしたらよいのでしょうか?
wはint32
sはなにかわからないのですが0から1000までの数しか使いません
(- w s)すると
Error: -: argument 1 must be: number とでてしまいます
たぶん型が違うんだなというところまでは分かったのですが
その先どうしたらよいかわかりません
よろしくお願いします。
868デフォルトの名無しさん:2008/12/28(日) 21:57:13
そのwはどこで手に入れたの?
wって本当に数値なの?
実はリストだったりしないの?
869デフォルトの名無しさん:2008/12/28(日) 21:58:20
そのwはどこで手に入れたのw
wって本当に数値なのw
実はリストだったりしないのw
870859:2008/12/28(日) 22:03:26
wのほうはソフトの方言?解説書によればint32で
GIMPで開いている画像の幅で
実際に入力されている値(400)もきちんと出ています。
871デフォルトの名無しさん:2008/12/28(日) 22:06:51
括弧で括られてないか?
872デフォルトの名無しさん:2008/12/28(日) 22:11:42
マクロの練習がてら
then/else式がそれぞれシンボルthen/elseに連なるリストの時は
そのcdrをbeginで囲った式として働き、
それ以外はif式と同じように働くマクロif*を書いてみては?
(if* boolean
 (then (foo) (bar))
  (else (hoge) (funi)))
みたいな
873859:2008/12/28(日) 22:40:47
うわあああwの値は括弧でくくられてた!!!
試しに普通の計算式(-12 5)をやってみたら
括弧のない7が表示されました。

あと、wを使った(- w s)の計算結果を
入力するところの型はFLOATです
後出しですいません。
874859:2008/12/28(日) 22:46:29
すいませんすいませんwを取り込む時に
(set! w(car(gimp-image-width img)))
という風にcarをつけたら計算出ました

すいませんすいませんこんなことで煩わせてごめんなさい
875デフォルトの名無しさん:2008/12/28(日) 23:29:13
Script-fuには
 (1) SIODベースのインタプリタ・・・Gimp 2.4より古いスクリプト
 (2) TinySchemeベースのインタプリタ
これら2種類あります。引数型は以下に載ってます。

3.2.2 DB ブラウザで表示される引数型
http://hp.vector.co.jp/authors/VA025935/script-fu/script-fu3.html
876デフォルトの名無しさん:2008/12/29(月) 18:40:14
いつのまにかguile涙目になってたんだ〜
http://www.ve3syb.ca/software/gimp/tiny-fu-faq.html
877デフォルトの名無しさん:2008/12/29(月) 18:45:33
というか、script-fuがschemeになっているの知らなかった。
SIODはscheme風のLispだったよね。
878デフォルトの名無しさん:2008/12/29(月) 20:41:57
Pythonで書けるからわざわざScheme使ってる人も少なそうだけどな
879デフォルトの名無しさん:2008/12/29(月) 21:12:10
Webブラウザで使えればSchemeももっと流行るだろうに
880デフォルトの名無しさん:2008/12/29(月) 21:51:32
流行ると何が嬉しいんだ
流行らせる以外の解決策はないのか?
881デフォルトの名無しさん:2008/12/29(月) 21:52:52
SGMLのDSSSLに採用されて流行るかと思った頃もありました(AA略
882デフォルトの名無しさん:2008/12/29(月) 23:03:34
1. 人類すべてに叡智を授ける
2. アクシズを地球に落とす
3. プログラマの9割をバグで抹殺する
883デフォルトの名無しさん:2008/12/30(火) 00:36:57
そういやMITの初年度のカリキュラムはSchemeからPythonになったとどっかでみたような
ソース示せないけど
884デフォルトの名無しさん:2008/12/30(火) 01:12:30
>>883
これ?
http://tech.mit.edu/V125/N65/coursevi.html

その後どうなったのか、そういえば知らないなあ。
885デフォルトの名無しさん:2008/12/30(火) 01:58:04
白いモビルスーツが勝つわ…
886デフォルトの名無しさん:2008/12/30(火) 07:40:24
kknr
887デフォルトの名無しさん:2008/12/30(火) 13:42:09
>>883
CSの一番最初っぽい授業は、課題にpythonが使われるとなってるね
http://student.mit.edu/catalog/m6a.html
888デフォルトの名無しさん:2008/12/30(火) 16:37:01
そのうちRubyになるんだろうなぁ。
889デフォルトの名無しさん:2008/12/30(火) 16:39:38
ないない
890デフォルトの名無しさん:2008/12/30(火) 16:49:38
都内の洋書屋行くと置いてある種類は
Ruby>Python>>>>>>>>Lisp
だね。
MITもポピュラー指向になったのだから次はより人気のあるRubyだよ。
891デフォルトの名無しさん:2008/12/30(火) 17:03:25
Java>>>>>>>>>>>>>>>>>>>>越えられない壁>>>>>>>>>>>>>>>>>>>>>>>>>>Ruby>Python>>>>>>>>Lisp
892デフォルトの名無しさん:2008/12/30(火) 17:11:34
>>890
アメリカではPythonの方がずっと多い。
ただRubyはたぶん日本のソフトウェアとしては過去最高の本の冊数だと思う。
Lisp、Scheme合わせても全く及ばない。
893デフォルトの名無しさん:2008/12/30(火) 17:41:58
pearl、Rubyとくれば、次はDiamondだな
894デフォルトの名無しさん:2008/12/30(火) 18:21:52
Rubyは言語仕様が曖昧・仕様変更とその理由はもっと曖昧
だからあんまり教育には向かない。
#それがいいか悪いかはまた別問題だが
895デフォルトの名無しさん:2008/12/30(火) 20:03:50
Scheme is the Diamond language.
896グラハム:2008/12/30(火) 20:06:50
そのうちアメリカの本屋に溢れかえるのはArc本だ。
何故って世間はハッカーの遠く後を追っかけるからさ。
897デフォルトの名無しさん:2008/12/30(火) 21:23:04
>>895
 沈黙はGOLD !
898デフォルトの名無しさん:2008/12/31(水) 21:46:47
>>896
ミスター武士道とお呼びしてもいいですか
899デフォルトの名無しさん:2008/12/31(水) 22:18:33
武士道は首都高速ですか。
900デフォルトの名無しさん:2009/01/01(木) 01:24:51
今年はgaucheにかける!
901デフォルトの名無しさん:2009/01/01(木) 01:40:45
汁を!
902デフォルトの名無しさん:2009/01/01(木) 22:29:03
(cons 'ake 'ome)
903デフォルトの名無しさん:2009/01/02(金) 03:00:20
schemeのソースを複数処理系に対応させたいと思います。
処理系依存の関数を使っている箇所があるので
その関数を定義していなければ自作の代用関数で置き換えます。
今のところ、
scmでは組込のdefined?
gaucheでは例外を利用した自作のdefined?
を使って判定しており、他は未対応です。

ある識別子がdefine済みかどうかを判定する、
R5RSの範囲で互換性のある方法があれば教えてください。
904デフォルトの名無しさん:2009/01/02(金) 04:10:05
r5rsの範囲からは外れるが、srfi-0とかsrfi-7あたりでそうでしょ。
問題は各処理系が自分自身を表わすfeature-identifierを持ってるかなんだけど。
905デフォルトの名無しさん:2009/01/02(金) 04:23:25
そうでしょ、じゃないや。どうでしょ。
906デフォルトの名無しさん:2009/01/02(金) 05:38:54
(cons 'koto (cons 'yoro '()))
907デフォルトの名無しさん:2009/01/02(金) 15:35:40
>>903
Gauche では global-variable-bound? が使えるよ。
でも、これは実行時の判定になるので、不充分なケースがあり得る。
slib とかを参考にしてみたら?
908903:2009/01/02(金) 16:23:33
>>904, 907
srfi-0のcond-expandで判定することにします。

ありがとうございました。
909デフォルトの名無しさん:2009/01/03(土) 04:57:17
(abbrev my-foo foo-cl)
(define my-foo foo-scm)

でschemeでもclでも動くプログラムは書けるのだろうか
910デフォルトの名無しさん:2009/01/04(日) 01:22:01
結婚式2週間前、IPA勤務の新郎がつこうた
http://tsushima.2ch.net/test/read.cgi/news/1230997845/

仁義なきキンタマ ウイルス情報 Part80
http://changi.2ch.net/test/read.cgi/download/1229742858/546
546 :[名無し]さん(bin+cue).rar :sage :2009/01/04(日) 00:24:59 >>500
報告する時は、詳しく的確に、一部だけ報告しないでお願いね

[殺人] Administrator(20081230-101522)のキンタマ.zip 2,263,376,860 09ed98f10653c3fc2555621ceeed6bc33e8f6228
[殺人] Administrator(20081230-101522)のメール.zip 59,426,579 4da9459b30eec31f58b86530dbb48d1cf86ef4be
[写真集][IV] Administrator(20081230-101522)のアルバム.zip 2,205,946,474 9d87cc0e08dc0e3afd959fcead6c48d569787cee
膨大な量のファイル数キンタマ ファイル数 13508 フォルダ数2381
以前勤めてた会社の資料など多数 独立行政法人情報処理推進機構などの資料など無いと思うが
有るかも知れない、あまりにも数が有り過ぎる、メールなどは、古いものばかりメルマガなど膨大な量
個人情報などは、披露宴主席者などの住所、名前、電話、メール 数十人分しかしエロばっかり落としてるな
ちなみに ハメ撮りscr 踏んだみたいね

早稲田実業学校中等部卒業
早稲田実業学校高等部卒業
早稲田大学政治経済学部政治学科卒業
卒論「知的財産権とインターネット技術」
当時の同大学理工学大学院の大川功 賞佳作を受賞
コンピュータ関連会社に入社ソフトウェア開発の仕事を経て
2005年に独立行政法人情報処理推進機構に入社
ソフトウェア・エンジニアリング・センター企画グループに配属
同グループ主任 岡田さん33歳
2009年1月19日結婚式・・・・
911デフォルトの名無しさん:2009/01/04(日) 14:20:32
r5rsで list の中に一つでも真があれば真を返す関数と
一つでも偽があれば偽を返す関数はありますか?

必ずあるとは思うのですが、
どんなキーワードで探せば良いか思いつきませんでした…。
912デフォルトの名無しさん:2009/01/04(日) 14:35:30
orとandじゃ駄目なんかね?
913デフォルトの名無しさん:2009/01/04(日) 15:03:49
>>911-912
あれは関数じゃない。
r5rs には無い。
けど、srfiでは定義されてる。
any と every
914デフォルトの名無しさん:2009/01/04(日) 15:10:31
>>912-913
ありがとうございます

(eval (cons 'and (mapcar = '(1 0 2) '(1 1 2)))) -> #f
(eval (cons 'or (mapcar = '(1 0 2) '(1 1 2)))) -> #t

any と every は使えない環境でしたので
こうする事にしました。
915デフォルトの名無しさん:2009/01/04(日) 15:24:41
そうだね、applyすればできるような、と思ったわけだが、やってみたら
orとかandは関数じゃないのでダメ(shortcut semantics のためには関数にできない)だた。
916デフォルトの名無しさん:2009/01/04(日) 15:25:32
...延々マクロで悩んでいたw
917デフォルトの名無しさん:2009/01/04(日) 22:13:35
おいおいevalは最後の武器だろ
918デフォルトの名無しさん:2009/01/04(日) 22:22:37
自前でanyとeveryを定義しとくって選択肢は残されてないのか。
919デフォルトの名無しさん:2009/01/04(日) 22:34:16
何故スペシャルフォームでは駄目なのか……
920デフォルトの名無しさん:2009/01/04(日) 23:25:00
要はその場でループ回せばいいと思うんだけど
ループを細かく何種類も分類して名前をつけて再利用
でも、名前のない関数をたくさん使う
おもしろいね
921デフォルトの名無しさん:2009/01/05(月) 08:18:34
>>919
変数に真偽値のリストが入ってるとか
922デフォルトの名無しさん:2009/01/05(月) 14:03:37
>>914
そういう動作でいいんなら
(memq #t list)
(not (memq #f lis))
じゃいけないのん?
923デフォルトの名無しさん:2009/01/05(月) 14:10:18
>ループを細かく何種類も分類して名前をつけて再利用

ポイントフリースタイルですね、わかりました
924デフォルトの名無しさん:2009/01/05(月) 21:46:39
John W. Backusキター!
925デフォルトの名無しさん:2009/01/06(火) 01:03:48
■問
関数fのaからbまでの積分値を計算する手続きを定義せよ。
引数にf,a,bとnをとり、Simpson公式を使うこと。(nは公式で使用する分割数で偶整数)
926デフォルトの名無しさん:2009/01/06(火) 01:23:31
>>925
それがどうしたんだ?
927デフォルトの名無しさん:2009/01/06(火) 01:36:30
宿題の丸投げか
928デフォルトの名無しさん:2009/01/06(火) 02:30:56
教えて君はHead first Scheme読めば?英語だけど。
929デフォルトの名無しさん:2009/01/06(火) 10:51:21
>>925
積分ぐらい紙とペンでやれよ
930デフォルトの名無しさん:2009/01/06(火) 12:41:18
>>925
公式通りに愚直に実装したよ
こんなの提出したら赤点喰らうだろうな
これは多分SICP 1章の練習問題だから、綺麗なものはググったら見付かるだろう

(define (simpson f a b n)
(if (and (< b a) (zero? n))
(error "undefined")
(let* ((h (/ (- b a) n))
(f0 (f a))
(sige (do ((ret 0)
(i 1 (+ i 1)))
((> i (- (/ n 2) 1)) ret)
(set! ret (+ ret (f (+ a (* 2 i h)))))))
(sigo (do ((ret 0)
(i 1 (+ i 1)))
((> i (/ n 2)) ret)
(set! ret (+ ret (f (+ a (* (- (* 2 i) 1) h)))))))
(fn (f b)))
(* (/ h 3) (+ f0 sige sigo fn)))))

しかしsicpが教科書とか羨ましすぎる
俺の学校は林晴比古の新C入門だった
931デフォルトの名無しさん:2009/01/06(火) 13:02:20
(* (/ h 3) (+ f0 (* 2 sige) (* 4 sigo) fn))ね…orz
932デフォルトの名無しさん:2009/01/06(火) 13:19:47
>>930
> 俺の学校は林晴比古の新C入門だった

...説教してやるから先生連れてこい、とか言いたくなった
933デフォルトの名無しさん:2009/01/06(火) 13:25:25
>>930
925じゃないが,やっぱSchemeすごいな.
(define testfunc (lambda (x) (* x x)))
(simpson testfunc 0 1 100)
で「1/3」と出るんだね.C/Fortranばっかやってたから新鮮だわ.
934デフォルトの名無しさん:2009/01/06(火) 15:17:26
CLで

(defun simpson (f a b n)
(let* ((h (/ (- b a) n))
(e (* 2 (loop for i from 1 to (1- (/ n 2)) sum (funcall f #1=(+ (* 2 i h) a)))))
(o (* 4 (loop for i from 1 to (/ n 2) sum (funcall f (- #1# h))))))
(* 1/3 h (+ (funcall f a) e o (funcall f b)))))

(simpson (lambda (x) (* x x)) 0 1 2) ;=>1/3
935デフォルトの名無しさん:2009/01/06(火) 22:20:18
はひー 
新年早々 積分で盛り上がるこのスレって 奇跡で出来てるんですね〜
936デフォルトの名無しさん:2009/01/06(火) 23:56:04
はい、そこ
恥ずかしいS式禁止
937デフォルトの名無しさん:2009/01/06(火) 23:59:50
微分: 微かに分る
積分: 分った積もり
938デフォルトの名無しさん:2009/01/07(水) 00:07:42
今年の抱負
Seasoned Schemerの残り(15〜最後)を読む!
SICP読む!
ものまね鳥読む!
GEBよむ!
わだばSchemerになる!わだばSchemerになる!
わだばSchemerになる!わだばSchemerになる!
わだばSchemerになる!わだばSchemerになる!
939デフォルトの名無しさん:2009/01/07(水) 00:08:44
xyzzy Lispで

(defun simpson (f a b n)
(let* ((h (/ (- b a) n))
(i 1) (r 0) (e (* 2 (loop (if (> i (1- (/ n 2))) (return r)) (setq r (+ r (funcall f (+ (* 2 i h) a)))) (setq i (1+ i)))))
(i 1) (r 0) (o (* 4 (loop (if (> i (/ n 2)) (return r)) (setq r (+ r (funcall f (- (+ (* 2 i h) a) h)))) (setq i (1+ i)))))
)
(* 1/3 h (+ (funcall f a) e o (funcall f b)))))

(simpson '(lambda (x) (* x x)) 0 1 100) -> 1/3
(simpson '(lambda (x) 1) 0 5 100) -> 5
(simpson '(lambda (x) x) 0 5 100) -> 25/2

940デフォルトの名無しさん:2009/01/07(水) 01:03:33
あらあら うふふ
941デフォルトの名無しさん:2009/01/07(水) 01:07:56
Alysia P. Hackerさんですか
942デフォルトの名無しさん:2009/01/07(水) 01:18:14
Lispコードを素早く読むコツを教えてくれ
括弧が多すぎて対を探すのが手間かかりすぎるw
943163.221.196.250 :2009/01/07(水) 03:13:28
Common Lisp, とりわけSBCLを使ってるんですが,
コアファイルをダンプするように,
リスト,配列,構造体などの個々のLispオブジェクトをファイルにダンプしたり,
逆に読み込んだりするようなライブラリはありますでしょうか?
944デフォルトの名無しさん:2009/01/07(水) 03:14:49
括弧? そんなものあったっけ?


マジレスするならちゃんとしたエディタ使えばインデントでわかるっしょ
慣れてしまえば括弧なんて空気みたいなもんだよ
945デフォルトの名無しさん:2009/01/07(水) 03:35:23
インデントがあれば括弧は要らない……なんて言っちゃいけないんだろうな
946デフォルトの名無しさん:2009/01/07(水) 03:54:43
つ SRFI-49
947デフォルトの名無しさん:2009/01/07(水) 03:59:58
948デフォルトの名無しさん:2009/01/07(水) 04:05:25
949163.221.196.250 :2009/01/07(水) 04:20:16
>>947
>>948

おお゛お゛う, なんというスピード対応, ありがとうございます.
早速試してみます.
950デフォルトの名無しさん:2009/01/07(水) 07:48:05
navi2chのバージョンアップ汁
951デフォルトの名無しさん:2009/01/07(水) 15:07:58
今だったら、LISPマシン向きのアーキテクチャをFPGAなんぞで実装出来るのでは?
952デフォルトの名無しさん:2009/01/07(水) 16:12:04
ECOOP06 LISP Workshop
Reimplementing the SECD microprocessor
http://vaxbusters.org/workshop/secd.xml
953デフォルトの名無しさん:2009/01/07(水) 19:26:08
>>952
なるほど、興味深いハードウェアですね。
>>947,948の考え方と併せると、将来はプログラミング過程をチップに
ダンプ(配線)として保存しながら、「昨日の続きをやるか」となるかもと妄想。
954デフォルトの名無しさん:2009/01/07(水) 22:01:48
ARIAネタにつきあってくれたSchemerのみんな、ありがとう。
955デフォルトの名無しさん:2009/01/07(水) 23:37:09
こちらこそ、でっかいありがとうです。
956デフォルトの名無しさん:2009/01/08(木) 03:17:48
>>952
元個人VAX11ユーザだったせいかurlにほくそ笑んだよ
957デフォルトの名無しさん:2009/01/08(木) 16:24:35
Reasoned Schemerに出てくるminiKanrenってモロPrologって感じだね。
SICPの4章の最後のデータベースに使ってる論理型言語より細かい処理が出来るよ。

http://codepad.org/qJcs4es4
http://codepad.org/96FTq50M
958デフォルトの名無しさん:2009/01/10(土) 22:28:53
on lispの日本語翻訳みれなくなってない?
959デフォルトの名無しさん:2009/01/10(土) 22:41:28
あ、ほんとだ見れないや
960デフォルトの名無しさん:2009/01/11(日) 16:49:18
Gaucheのlet-syntax&syntax-rulesの動作が他と違う。
これはR5RSに合っている?
合っていないなら既知のバグ?
#外側syntax-rulesでキャプチャした_argsの中のx:が
#内側syntax-rulesのキーワードx:と別扱いされているのかも。

(define-syntax test-let
(syntax-rules ()
((_test-let . _args)
(let-syntax
((_test (syntax-rules (x:)
((_test x: . _args2)
'_args2)
((_test _any . _args2)
'(_any . _args2)))))
(_test . _args)))))
(display (test-let x: 1));=>(1)
(newline)
(display (test-let y 1));gauche=>(1), others=>(y 1)
(newline)
961デフォルトの名無しさん:2009/01/11(日) 18:12:09
Gaucheではsyntax-rulesマクロを生成するsyntax-rulesマクロは正常に働きません
962960:2009/01/11(日) 18:32:56
>>961
了解。
ありがとう。
963961:2009/01/11(日) 18:34:14
とはいうものの
> 外側syntax-rulesでキャプチャした_argsの中のx:が
> 内側syntax-rulesのキーワードx:と別扱いされているのかも。
なら(test-let x: 1)のほうがうまくいかないはず。
(test-let y 1)がどうして(_test x: . _args2) にマッチするんだろう?
???
964デフォルトの名無しさん:2009/01/11(日) 23:44:52
純粋さよりシンプルさを重視する傾向にあるRnRS-Schemeで
どうしてsyntax-rulesやsyntax-caseみたいな複雑なマクロが採用されているのかわかりませんね
965964:2009/01/11(日) 23:53:51
syntax-rulesやsyntax-caseを否定/批判しているわけではありませんので、悪しからず
966デフォルトの名無しさん:2009/01/12(月) 00:17:44
いや、もっともな意見だね
define-macroでいいもの
追求してオナニーするための道具でしかない
967デフォルトの名無しさん:2009/01/12(月) 00:44:12
シンプルさ重視ならレガシーマクロもいらないんじゃないの
eval-whenとかけっこう複雑だし
javascriptかluaを使えばいいと思うよ
968デフォルトの名無しさん:2009/01/12(月) 01:53:51
個人的な意見だけど、ハイジーニックなマクロは
define-macroに付き物の 「実行時・コンパイル時」とかそういう「泥臭い」概念を
排除して、純粋に「アルゴリズミックランゲージ」を追求しようとしたんじゃない
かなーと思う。
あと、コンパイル時にLispコードが走るってのは理論面でちょっと扱いづらい
ような気もするので、それもあるかも。

まぁ良し悪しは別ね。

俺はdefine-macroの方が好き。
969デフォルトの名無しさん:2009/01/12(月) 05:37:37
ERR5RS だと Explicit Renaming を入れて
syntax-case や syntax-rules はライブラリにしちゃおうなんて提案も挙がってるね。
http://scheme-punks.org/wiki/index.php?title=ERR5RS:A_Concrete_and_Conservative_Proposal
970デフォルトの名無しさん:2009/01/12(月) 10:34:25
> 968
syntax-rulesまではよかった、までは・・・
971デフォルトの名無しさん:2009/01/12(月) 20:20:15
そのよさを説明できないのが問題なんだな
逆に、syntax-caseのほうが強力だと説明するのは簡単だけど
972デフォルトの名無しさん:2009/01/13(火) 01:00:06
>>968
>あと、コンパイル時にLispコードが走るってのは理論面でちょっと扱いづらい
ような気もするので、それもあるかも。

それはあると思う。別にdefine-syntaxはコンパイルタイムで実行しなければならない
というわけじゃないんじゃないか。
たまたま、分離できるから分離してコンパイルタイムで実行しているだけで、別にその
必然は無いだろう。

関係ないけれど、Schemeがらみでよく考えると意味がつながらない説明が結構ある気が
する。(いままで何となく納得していたけど)
例えば、代入はダメとか。手続き型みたくはプログラム書くなとか。それでいて、
具体的に、どういうものが関数型プログラミングなのかよくわからないという状態。
なんかもー別に、関数型スタイルにこだわる必要ないんじゃない?
973デフォルトの名無しさん:2009/01/13(火) 01:40:52
>>972
内部に状態を持たない処理を組み合わせて、
プログラムを書く手法が関数型なんだと思うが。
お前さんも自分で書いてるように。

関数型にマッチしなけりゃオブジェクト指向とかも使えばいいし、
何でもかんでも参照透明にしないでもいいじゃない。
ハッシュとか普通に副作用使ってるし。
974デフォルトの名無しさん:2009/01/13(火) 01:57:38
参照透明にしたところで、幸せになれることってそんなに無いし。
975デフォルトの名無しさん:2009/01/13(火) 02:01:06
お前が幸せになるためにあるわけじゃないから当たり前だな。
976デフォルトの名無しさん:2009/01/13(火) 02:30:38
再現できたりできなかったりするバグとお別れできるのって、
割と幸せじゃない?
977デフォルトの名無しさん:2009/01/13(火) 07:10:03
関数型で書くから人は幸せになれるんじゃない
幸せになろうとする過程こそが幸せなんだ
978デフォルトの名無しさん:2009/01/13(火) 07:34:48
幸せってなんだっけ
979デフォルトの名無しさん:2009/01/13(火) 08:07:25
しょうゆ〜こと
980デフォルトの名無しさん:2009/01/13(火) 10:12:26
言語が複雑になるとcall/ccの実装が困難になるの?
common lispにcall/ccないのはそのため?
981デフォルトの名無しさん:2009/01/13(火) 10:42:16
call/ccがあるとunwind-protectの実装が不可能になるとか
GCとC++デストラクタみたいな関係?
982デフォルトの名無しさん:2009/01/13(火) 10:54:28
>>976
手続き型から関数型への変換は機械的にできるんだが、
それをやってもバグが簡単に見つかるわけじゃない。
983デフォルトの名無しさん:2009/01/13(火) 10:55:41
>>982
あほですね
984デフォルトの名無しさん:2009/01/13(火) 11:03:46
そうやって変換したものは、形式上は関数型だが
内容は手続き型そのものだから「こんなの関数型じゃない!」となる。
「関数型」の定義が分からないっていうのはそういうこと。
985デフォルトの名無しさん:2009/01/13(火) 11:55:53
>>982
関数的な、参照透明性が保証されている書き方をするなら、
同じ引数を渡せば必ず同じ値が返ってくる。

再現できたりできなかったりするバグっていうのは、
内部に状態を持ってて、その状態がその時々で異なるからこそ、
発生するわけじゃない?

ついでに言うと、どんなバグでも見付かりやすくはならんぞ。勿論。
986デフォルトの名無しさん:2009/01/13(火) 12:43:33
説明しよう

手続き型のプログラムを機械的に変換することで
「再現できたりできなかったりするバグ」はなんか別の種類のバグに変換されるのだ

そして、どんなバグでも見付かりやすくはならないのだ
987デフォルトの名無しさん:2009/01/13(火) 12:57:43
綺麗なモジュールと汚いモジュールを分離できるのはある程度有効なんじゃね
綺麗な奴はテストで品質を保証しやすいし、
怪しいのは汚い方だろう、と見当がつけられる
988デフォルトの名無しさん:2009/01/13(火) 13:50:55
綺麗か汚いかをどんな基準で決めるかって話だが・・・
代入を使うか使わないかはあまり意味がない気がしてきた。

ポイントフリースタイルは複雑にならなければ綺麗だと思う。
代入を使わないんじゃなくて、変数を使わないスタイル。
989デフォルトの名無しさん:2009/01/13(火) 14:04:09
>>988
綺麗汚いっつったらなんか主観的な美的観点っぽい話になってしまうか

俺の判断基準はもっとシンプルで、
外部の状態に依存する/外部の状態を変更するものは汚い
そうでなく、もし状態を扱っていても、内部で完結していれば、綺麗
です

グローバル変数、I/O、状態を扱う外部モジュールへの依存、などなどが
「汚い」部類に入ることになります
990デフォルトの名無しさん:2009/01/13(火) 15:05:04
オブジェクト指向っぽくなってきたね
やはり最後に勝つのはマルチパラダイムか
991デフォルトの名無しさん:2009/01/13(火) 15:54:57
Lisp的にはもともとそうなのでは

LispでEmacsのようなプログラムが作れるわけですが
参照透明でお上品でお綺麗なEmacsなんて想像もつかない
キーを一文字打鍵するだけで全部コピーするのは流石にナシでしょうし
モナドだらけになるのでしょうか?
992デフォルトの名無しさん:2009/01/13(火) 16:23:23
>>989
I/Oもなの?
Lisp/Schemeが、I/Oに対して行なったストリーム抽象の貢献は、
先行があったとはいえ、独自のものがあったと思うけれど…
993デフォルトの名無しさん:2009/01/13(火) 16:29:40
Scheme やり始めた者です。Gauche でやってます。
質問です。

(define (foo a b c)
 (define (bar d e f)
  (略

こんなふうに、手続きを作る define の中に、手続きを作る define って書けるじゃないですか。
で、内側の define の前に、if とか when とか書いたら、

(define (foo a b c)
 (if (null? a) (exit 1))
 (define (bar d e f)
  (略

gosh: "error": Compile Error: syntax-error: the form can appear only in the toplevel: (define (bar .....

って怒られました。
何でダメなのでしょうか。

環境:
%uname -prs
FreeBSD 7.0-RELEASE-p1 i386
%gosh -V
Gauche scheme interpreter, version 0.8.14 [utf-8,pthreads]
994デフォルトの名無しさん:2009/01/13(火) 16:33:38
>>992
えーと、自分の「汚い」という意味は、「悪い」というのとは違います
I/Oなしで意味のあるプログラムを書くのは不可能ですし……

単に「現実の泥仕事」に近く、「バグや問題が出やすい場所」と認識しているだけです

995デフォルトの名無しさん:2009/01/13(火) 16:36:42
>>993
defineは式ではないので本体部の先頭かトップレベルでしか規格で許されていないから
996993:2009/01/13(火) 17:54:15
>>995 さん
ありがとうございます。
調べたら確かにそうかいてありました。
997デフォルトの名無しさん:2009/01/13(火) 18:18:13
きれいな言語仕様してるだろ
ウソみたいだろ
死んでるんだぜ。それで…
たいしたキズもないのに、ただ、ちょっとタイプどころが悪かっただけで…
もう動かないんだぜ

ウソみたいだろ
998デフォルトの名無しさん:2009/01/13(火) 20:49:17
もうわけわからん。
999デフォルトの名無しさん:2009/01/13(火) 21:28:50
まだだまだ終わらんよ
1000デフォルトの名無しさん:2009/01/13(火) 21:29:44
1000なら今年はLispで仕事ができる
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。