トップページ⇒tech
1001コメント293KB

Lisp Scheme Part24

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2008/10/25(土) 21:53:25
※ ここは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)
0002デフォルトの名無しさん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の話題が中心。
0003デフォルトの名無しさん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
0004デフォルトの名無しさん2008/10/25(土) 21:55:22
□Wikipedia関連□

ttp://ja.wikipedia.org/wiki/LISP
ttp://ja.wikipedia.org/wiki/Common_Lisp
ttp://ja.wikipedia.org/wiki/Scheme

□継続関連□

なんでも継続 (日本語)
ttp://practical-scheme.net/docs/cont-j.html

Schemeへの道:継続 (日本語)
ttp://www.stdio.h.kyoto-u.ac.jp/~hioki/gairon-enshuu/SchemeNotes/continuation.html

継続の使い方 (日本語)
ttp://www.geocities.co.jp/SiliconValley-PaloAlto/7043/index.html#continuation

継続の使用法 (日本語)
ttp://www.ice.nuie.nagoya-u.ac.jp/~h003149b/lang/block.html

Kahua: 継続ベースのアプリケーションサーバ。
ttp://www.kahua.org/
0005デフォルトの名無しさん2008/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入門書。全文がオンラインで読めます。
0006デフォルトの名無しさん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の力の源泉であるマクロプログラミングを解説。
0007デフォルトの名無しさん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
0008デフォルトの名無しさん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
0009デフォルトの名無しさん2008/10/25(土) 22:05:02
□その他(3)□

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

Schemeのテストコード書いたり、簡単な実行したりコードさらしたりするにはここへカモン。
ttp://codepad.org/
コードを書いて実行した時のURLを記録しておけば、実行結果も一緒にさらす事が出来て幸せです。
0010デフォルトの名無しさん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
0011デフォルトの名無しさん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/
0012デフォルトの名無しさん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
0013デフォルトの名無しさん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/
0014デフォルトの名無しさん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/
0015デフォルトの名無しさん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/
0016デフォルトの名無しさん2008/10/25(土) 22:18:53
なぜかテンプレサイトに繋がらなかったり、連投規制に引っかかったりして苦戦しましたが、
テンプレは以上です。補足等、よろしくお願いします。
0017デフォルトの名無しさん2008/10/25(土) 22:27:14
1さん大変お疲れ〜
>>16
wikiの管理人なんですけど、あそこは時々つながりにくくなる。Rubyの本拠のNACLが
運営しているフリーwikiホスティングなんだが…。Rubistを刺激したく無いけど。少し頑張っ
て欲しいと思う。移動させたいという話が出てきたならどうぞコピーしていってやってくだ
さい。と思ってます。
0018デフォルトの名無しさん2008/10/25(土) 22:29:03
>>1
これは乙じゃなくてポニーテールなんたらかんたら
0019デフォルトの名無しさん2008/10/25(土) 23:00:02
(乙 (rref 1))
0020デフォルトの名無しさん2008/10/25(土) 23:06:10
     ::|
     ::|    ____
     ::|.  ./|=|    ヽ.    ≡三< ̄ ̄ ̄>
     ::|. / |=|  o  |=ヽ     .≡ ̄>/
     ::|__〈 ___  ___l   ≡三/ /
     ::|、ヽ|.|┌--、ヽ|/,-┐|    ≡/  <___/|
     ::|.|''''|.\ヽ--イ.|ヽ-イ:|  ≡三|______/
     ::|.ヾ |.::. .. ̄ ̄| ̄ /
     ::|  ';:::::┌===┐./
     ::| _〉ヾ ヾ二ソ./       こ、これは>>1乙じゃなくてスラッガーなんだから
     ::||ロ|ロ|  `---´:|____    変な勘違いしないでよね!
     ::|:|ロ|ロ|_____/ロ|ロ|ロ,|`ヽ
     ::| |ロ|旦旦旦旦旦/ロ/ロ|旦,ヽ
     ::|ロヽ 旦旦旦旦旦./ロ,/|::旦旦)
     ::|ヾ旦旦旦旦旦旦,,,/::::|、 旦旦|
0021デフォルトの名無しさん2008/10/25(土) 23:08:13
できておる。できておるのう…前スレ>>1000は…。
0022デフォルトの名無しさん2008/10/25(土) 23:44:08
はやるとしても
車に例えるとレース用だろ
0023デフォルトの名無しさん2008/10/26(日) 00:01:49
'(1000を とった から lispは これからは やるよ)
0024デフォルトの名無しさん2008/10/26(日) 00:19:33
>>23
(eq >>23 >>1000@前スレ) ; nil

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

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


1乙\(^o^)/
0027デフォルトの名無しさん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
0028デフォルトの名無しさん2008/10/26(日) 03:22:42
>>27
だれかこれ日本語に翻訳してくれないか
0029デフォルトの名無しさん2008/10/26(日) 04:28:04
>>17
WiLiKiに置いとけば?
0030デフォルトの名無しさん2008/10/26(日) 12:04:50
>>17
お、管理人さんか。地道な更新乙。
0031デフォルトの名無しさん2008/10/26(日) 12:45:42
Who wares PIYO-PIYO
0032デフォルトの名無しさん2008/10/26(日) 13:02:46
>>30
管理人は名ばかりで少しの更新はしてますが、多くの更新はlisp系スレッドの住民の
方々によるものなのです。みなさんの協力があってこそなりたっていまして、こちらこそ
協力にありがとうです。
0033デフォルトの名無しさん2008/10/26(日) 14:35:19
>>28
いや、いわんとしてることはわかると思うけどな。
Unix lile OS の次を模索してないようじゃだめでしょ、というか。
0034デフォルトの名無しさん2008/10/26(日) 14:59:03
>>33
あるのでしょうか?mach?まだよくわからない hurd ?
0035デフォルトの名無しさん2008/10/26(日) 15:35:42
Plan9
0036デフォルトの名無しさん2008/10/26(日) 15:46:16
つうか、昔のUnixと今のUnixじゃまったく別物でしょ。
0037デフォルトの名無しさん2008/10/26(日) 15:46:28
Lispマシン再考ってか。
0038デフォルトの名無しさん2008/10/26(日) 15:52:11
cpuはともかくメモリは連続アドレスの今の方式以外考えられないよね?
lispマシンって何が弱いんだったっけ…。
0039デフォルトの名無しさん2008/10/26(日) 15:55:01
仮想マシンじゃダメなん?
0040デフォルトの名無しさん2008/10/26(日) 16:41:53
>>27に書いてあるような100万スレッドって、スケーラビリティを念頭に置いてるのかな?
既存のOSの発想では不可能でしょ、JK。
mach や hurd もその点では同じ。Solarisも大したことないし。
どのOSでも大した違いが無いということは、裏を返せば共通する不満点があるんだってことだ。
それを提示できるのはCSの人間だって?それはどうかな。
0041デフォルトの名無しさん2008/10/26(日) 16:43:14
>>37
んー、魅力的。ICOT ってlispでしたっけ?prolog?
0042デフォルトの名無しさん2008/10/26(日) 16:43:44
>>36
Dr.は、もっと根本的な変化を望んでるんじゃないの?
0043デフォルトの名無しさん2008/10/26(日) 16:52:51
>>42
たしかに奇想天外なアイディアがほしいところですね。やっぱりICOT?
0044デフォルトの名無しさん2008/10/26(日) 17:12:21
10年と570億円をかけたプロジェクトが完成したのはアプリケーションのほとんどない並列推論システムだけだった。
成果が産業に影響を与えることはなく、学術振興と人材育成に寄与しただけだった。その結果がDr.・・・
応用の進展を阻んでいるのはソフトウェアが存在しないからであって、強力な推論マシンがないからではない。
ソフトウェアが既にたくさんあって、強力な推論エンジンの出現を待ちわびていると思うのは間違いだ。
もし、応用分野があればLispなら素早く書き安いだろうが、応用分野を指摘できていない点で内容が無い文章だ。
0045デフォルトの名無しさん2008/10/26(日) 17:14:19
>>44
んで、君なら応用分野を指摘できるの?
できないんならDrを批判する立場にないね。
0046デフォルトの名無しさん2008/10/26(日) 17:17:32
>>45
オマエモナー
0047デフォルトの名無しさん2008/10/26(日) 17:19:04
いまどきLispって使えるの?
004841,432008/10/26(日) 17:20:42
44 じゃないですが。自然言語の相互翻訳は、今はどの程度まで到達しているのでしょうか?
0049デフォルトの名無しさん2008/10/26(日) 17:33:40
>>48
http://www.google.com/language_tools?sourceid=navclient&hl=ja
例としてgoogle翻訳を試してみると分かると思うよ。
文法的に似てる言語間ではうまく翻訳できる。例えば、ロマン語(イタリア・フランス・スペイン)。
日本語の場合、韓国語はOKだけど、中国語は駄目。英語も駄目だね。
特にユーザー数が少ない言語は登録語彙数が少なくてうまく訳せない。
こういうアプリケーションはオープンソースで辞書を共有すると発展しそう。
推論エンジンはあまり関係なくなってるかな。障害は主に文法的な例外だから。
0050デフォルトの名無しさん2008/10/26(日) 18:09:30
GPLTransも五年は更新されてないのか。死んでますね。
http://sourceforge.net/projects/gpltrans/
0051デフォルトの名無しさん2008/10/26(日) 18:57:55
>>49
分詞構文とか仮定法(接続法)はまったくだめですね。
0052512008/10/26(日) 19:00:59
雑談ですみません。英語->日本語の話です。
とあるサイトの経験では韓国語は割りといいみたいです。日->韓->日で違和感がないですから。(というか違和感が発生しないように元の日本語をかいています。
でも、英語<->日本語が実用になるのはいつの話か。
これを大掛かりなシステムでがんばろう、という団体は現れるのでしょうか。
0053デフォルトの名無しさん2008/10/26(日) 19:02:41
エンコリ以外にあるのかね
0054デフォルトの名無しさん2008/10/26(日) 19:17:52
NAVERとかの日->韓->日は評判が良いらしい。
英語<->日本語が実用になるには文法のルールをしっかり見つけて登録するしかない。
文法の推論エンジンに問題があるわけじゃない。
ビジネス的には英中のプライオリティが高いから日本語は後回しだと思う。
現実問題として、食品・医薬品分野の品質保証で英中自動翻訳は急務。
世界中から引き合いが在る。
0055デフォルトの名無しさん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など、なぜか二つの要素がペアになっているのですが、
これには何か理由があるのでしょうか?
0056デフォルトの名無しさん2008/10/26(日) 20:28:30
body1 body2 ...は1個以上の式にマッチする
body ...は0個以上の式にマッチする
規格上式を本体に1個以上持つ事が要求されているので前者で記述されている
ちなみに...も1つの識別子だからbody1 body2 ...は3要素になります
0057デフォルトの名無しさん2008/10/26(日) 21:09:38
>>56
ばっちり理解できました。
ありがとうございます。
0058デフォルトの名無しさん2008/10/26(日) 21:47:37
http://bbs.enjoykorea.jp/
エンコリの右上にある翻訳機に
「또한 일본에서 여러 가지 포르노 문화를 꽃피워 있다. 」
をコピペして翻訳させたらちゃんと訳してくれてワロタ
さすがはキーセンの国
0059デフォルトの名無しさん2008/10/26(日) 22:31:01
한국의 대학생은 언제나 새타령 을 춤추고 있습니다.
0060デフォルトの名無しさん2008/10/26(日) 22:46:53
下賤な文字を見せるなボケ
0061デフォルトの名無しさん2008/10/26(日) 22:56:28
하천인 문자를 보이지 말아라 노망
0062デフォルトの名無しさん2008/10/26(日) 22:57:21
モールス信号かよw
0063デフォルトの名無しさん2008/10/26(日) 23:01:31
모르스 신호인가
0064デフォルトの名無しさん2008/10/26(日) 23:03:36
>>51
atr
0065デフォルトの名無しさん2008/10/26(日) 23:03:38
なんか?記号がいっぱい出るんだがなにがあった?
0066デフォルトの名無しさん2008/10/26(日) 23:06:56
翻訳どころか文字コード変換すら覚束無いみたいな
0067デフォルトの名無しさん2008/10/26(日) 23:09:43
मोर्स कोड?
0068デフォルトの名無しさん2008/10/26(日) 23:14:12
וכן תרגום של תווים לא יכול להיות קוד המרה.
0069デフォルトの名無しさん2008/10/26(日) 23:17:49
Có rất nhiều biểu tượng
0070デフォルトの名無しさん2008/10/26(日) 23:27:36
ภาษาประจำชาติเอาออกคนไม่เข้าใจ
เกณฑ์มาตรฐานการศึกษาต่ำ
0071デフォルトの名無しさん2008/10/26(日) 23:29:59
ماذا حدث؟
0072デフォルトの名無しさん2008/10/26(日) 23:30:53
☠実体参照使えたんでしたっけ?
0073デフォルトの名無しさん2008/10/26(日) 23:31:45
使えますね#x270c;
0074デフォルトの名無しさん2008/10/26(日) 23:32:26
จะดูถูกเหยียดหยามคนญี่ปุ่น
0075デフォルトの名無しさん2008/10/26(日) 23:35:17
ونحن في اليابان للفوز
0076デフォルトの名無しさん2008/10/26(日) 23:40:45
צ'יאונה סוגיהארה הוא כיבוד
0077デフォルトの名無しさん2008/10/26(日) 23:50:12
जापानी लोगों को पैसे से प्यार है.
0078デフォルトの名無しさん2008/10/27(月) 00:09:25
印度也喜欢钱
0079デフォルトの名無しさん2008/10/27(月) 00:17:14
जैसे कौन सी प्रोग्रामिंग भाषा तुम हो?
0080デフォルトの名無しさん2008/10/27(月) 00:22:24
العنصرية
0081652008/10/27(月) 00:22:29
朝鮮語だけ?になるのはフォント削除したからだった
0082デフォルトの名無しさん2008/10/27(月) 00:25:14
Todos los Lisper japonés es racista, sadlly.
0083デフォルトの名無しさん2008/10/27(月) 00:33:01
みんな暴走しすぎ。
0084デフォルトの名無しさん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
0085デフォルトの名無しさん2008/10/27(月) 01:04:41
1さん乙です
0086デフォルトの名無しさん2008/10/27(月) 01:13:04
(cons テンプレ 苫米地)
(テンプレ? 苫米地)
=>#f
0087デフォルトの名無しさん2008/10/27(月) 02:12:31
管理人さん乙です
その他のLisp実装に
newlispを加えるのはどうでしょう?
ttp://www.newlisp.org/
0088デフォルトの名無しさん2008/10/27(月) 04:47:37
Shibuya.lispの動画がニコニコに揃いましたね。
ttp://www.nicovideo.jp/tag/shibuya.lisp

>>87
やっておきましたが、せっかくのWikiなので、いちいち断わらずとも
適当に編集しちゃっていいと思いますよ。
0089デフォルトの名無しさん2008/10/27(月) 09:48:40
博士も知らないニッポンのウラ #30 脳機能学者 苫米地英人
http://www.nicovideo.jp/watch/sm4905951
0090デフォルトの名無しさん2008/10/27(月) 09:59:36
苫米地英人の宣伝がウザイ>>27, >>45, >>89
信者かアンチか知らんが
0091デフォルトの名無しさん2008/10/27(月) 11:53:48
宣伝だったのか・・・せめて日本語でやれよ
0092デフォルトの名無しさん2008/10/27(月) 18:56:32
言葉と言えば、アラビア語のLispは左右逆なのかな。
0093デフォルトの名無しさん2008/10/27(月) 19:04:01
(((c cc !tes) (c) adbmal) noitaunitnoc-tnerruc-htiw-llac)
0094デフォルトの名無しさん2008/10/27(月) 19:16:45
文の中でも英単語とか入るとそこだけ向きが変わったりしたような気がする。
0095デフォルトの名無しさん2008/10/27(月) 19:57:04
日本人ならLISPも縦書き。
0096デフォルトの名無しさん2008/10/27(月) 21:19:50
苫米地英人ってオウムシスターズと結婚した人でしたっけ?
0097デフォルトの名無しさん2008/10/27(月) 22:35:48
関数型言語はrepl以外の入出力が何もないときは楽だな。
入出力の処理を自分でやるときは手続き型のほうが自然に感じる。
0098デフォルトの名無しさん2008/10/27(月) 22:38:03
>>95
笑った
0099デフォルトの名無しさん2008/10/28(火) 10:09:30
>>92
ということは日本語のlispは縦書きですね
0100デフォルトの名無しさん2008/10/28(火) 10:37:19
これは恥ずかしい
0101デフォルトの名無しさん2008/10/28(火) 11:33:31
http://www2k.biglobe.ne.jp/~araken/qxw.htm
縦書きでプログラミングに使用できるエディタは存在する。
半角だけ横にすることも出来る。
0102デフォルトの名無しさん2008/10/28(火) 12:07:20
>>101
カッコやインデントに対応してくれw
0103デフォルトの名無しさん2008/10/28(火) 13:07:27
QXは縦書きが出来る以外利点が無いな。
0104デフォルトの名無しさん2008/10/28(火) 16:09:51
>>103
他に縦書きが出来てさらに他の利点もあるものをあげてくれよ。
emacsは縦書き出来ないし、なんかあるの?
0105デフォルトの名無しさん2008/10/28(火) 17:03:02
なんだそりゃ
0106デフォルトの名無しさん2008/10/28(火) 17:54:14
Windowsだけなのか?
0107デフォルトの名無しさん2008/10/28(火) 18:52:04
アプリケーションのほとんどない並列推論システムが死んだように、
他の利点の無いエディタも死んでいる。
死んで次に続かないものには意味を見い出せない。
あれは駄目、これは駄目と否定するだけの人間も死んでいる。
今、CSに必要なのは生きている人間だ。
0108デフォルトの名無しさん2008/10/28(火) 20:02:12
lispで作られたゲームってありますか?
0109デフォルトの名無しさん2008/10/28(火) 20:04:33
イプシロンって、組み込んだピンボール出たんだっけ?
0110デフォルトの名無しさん2008/10/28(火) 20:09:54
ゲームスクリプトに採用された例なら
クラッシュ・バンディクーがそうらしいです
ttp://practical-scheme.net/wiliki/wiliki.cgi?Scheme%3A%E7%B5%84%E8%BE%BC%E3%81%BF%E3%83%BB%E3%83%AA%E3%82%A2%E3%83%AB%E3%82%BF%E3%82%A4%E3%83%A0%E7%94%A8%E5%87%A6%E7%90%86%E7%B3%BB
01111102008/10/28(火) 20:11:04
リンク先にはジャック×ダクスターもそうだと書いてありますね
0112デフォルトの名無しさん2008/10/28(火) 20:33:50
imagicaのパーフェクトライフもそうみたいだぞ
0113デフォルトの名無しさん2008/10/28(火) 20:44:29
おお!そんなに活躍してるゲームにlispがあったんですか!
lispを勉強しようと思ってゲームでも作れたらいい目標になるなって思ってたんですけど
lispではそういうゲームエンジン的なものは無料で配布されてたりしないんですか?
0114デフォルトの名無しさん2008/10/28(火) 21:34:04
かなり古いゲームだし、それそのものが Lisp で書かれたわけではないが、
マザーの開発に Lisp が使われたりはしたみたいだな。
0115デフォルトの名無しさん2008/10/28(火) 21:34:26
>>110
作品名言えないけどプレステで使いました
0116デフォルトの名無しさん2008/10/28(火) 21:58:57
You! 言っちゃいなYo!
0117デフォルトの名無しさん2008/10/28(火) 22:06:41
ターゲット上で Lisp を動かしたわけじゃないけど
サターンのゲームで使ったお
0118デフォルトの名無しさん2008/10/28(火) 22:09:28
Lispが仕事なんて裏山志井。
ゲームじゃないけどAutoCADもLispでしょ?
0119デフォルトの名無しさん2008/10/28(火) 22:26:46
AutoCADのAutoDeskはMayaもSoftimageも買収したそうな。
ということは・・・
CGシステムの標準スクリプトはLispになる!?
ああ、シンボリクスの夢よ再び(笑
0120デフォルトの名無しさん2008/10/28(火) 23:29:34
>119
マジレスするとそれはない。
C++か.NET
0121デフォルトの名無しさん2008/10/28(火) 23:34:18
>>120
いくらなんでもC++は無いだろう
.NETはスクリプトには関係ないし
0122デフォルトの名無しさん2008/10/28(火) 23:37:58
じゃあIronSchemeを使えばいいのに
http://www.codeplex.com/IronScheme
0123デフォルトの名無しさん2008/10/29(水) 00:05:49
>>119
AutoLispってとっくにやめて、VBA組み込んでるんじゃなかったっけ?
>>120
さすがにC++じゃ機能拡張用プラグインでも作るのかって勢いだろ。
CAD/CG作成者にLisp覚えてくださいっていうよりきついわ〜
0124デフォルトの名無しさん2008/10/29(水) 00:08:31
>>118
> ゲームじゃないけどAutoCADもLispでしょ?
なんかlisperの人たちでAutoLisp使ったことが無い人が多いみたいなので
言っておくけど、AutoLispは相当古い仕様だぞ。
letすらない。activexは制御できるが。
今は VBA 使えるからそっちで作った方がマシかと。
0125デフォルトの名無しさん2008/10/29(水) 00:08:46
IronSchemeの存在意義がわからない。F#だけで十分だろ。
なんでわざわざSchemeで.Net使う必要があるんだ。
0126デフォルトの名無しさん2008/10/29(水) 00:29:26
俺が使いたいのは Schemeであって、関数型言語じゃないんだ!
て人向け。
0127デフォルトの名無しさん2008/10/29(水) 00:39:13
何がIronなのか判らない
0128デフォルトの名無しさん2008/10/29(水) 00:42:15
.NET搭載の時点で、もはや教育のための言語ですらない。
Schemeの利点を無視している。
0129デフォルトの名無しさん2008/10/29(水) 00:43:34
生きるって何なのか判らない
0130デフォルトの名無しさん2008/10/29(水) 00:46:47
教育用ならC#かJavaで手早く実装してしまえばいいのに
0131デフォルトの名無しさん2008/10/29(水) 03:39:53
LispはLisperの妄想のために存在する
それは生きる喜びに直結するのでLispには価値がある
0132デフォルトの名無しさん2008/10/29(水) 04:52:16
>>108
AngbandをCLで書き直したLangbandっていうのがあるみたい。
0133デフォルトの名無しさん2008/10/29(水) 08:15:27
最終的にはスクリプトもJavaScript系に固まってくんだろうなあ、いろいろと楽だから。
もしかしてEmacsもEmacsScriptを搭載してアイコンも牛ではなくなってしまう日は来るのか?・・・
0134デフォルトの名無しさん2008/10/29(水) 09:03:54
むしろECMAScriptで実装されたEcmasというエディタが主流になったりして
0135デフォルトの名無しさん2008/10/29(水) 10:58:49
>>114 WiLiki に詳細きぼん
0136デフォルトの名無しさん2008/10/29(水) 14:43:03
JavascriptってLispの方言でしょ?
0137デフォルトの名無しさん2008/10/29(水) 14:45:53
>>136 中村みたいな釣りはいりまへん
0138デフォルトの名無しさん2008/10/29(水) 15:53:36
ばれたか\(^o^)/
0139デフォルトの名無しさん2008/10/29(水) 22:01:08
ワロタw
0140デフォルトの名無しさん2008/10/29(水) 22:54:32
最も革新的な国は日本
http://c.2ch.net/test/-/news/1225285184/
0141デフォルトの名無しさん2008/10/30(木) 18:22:55
http://qb5.2ch.net/test/read.cgi/operate/1206636885/657
強制ID実装を駄目元で頼み込んでみた。
もし賛同してくれる人がいたら同意のレスつけてください。
0142デフォルトの名無しさん2008/10/30(木) 21:28:56
同意ノ
0143デフォルトの名無しさん2008/10/30(木) 21:39:03
T
0144デフォルトの名無しさん2008/10/31(金) 03:48:25
住人が少ないから必要ないだろ。
荒れてる原因は最近住み着いた奴なのも明白だし。
もしかしたら>>141じゃないかという気がしている。
0145デフォルトの名無しさん2008/10/31(金) 05:08:32
ID が付くと、関係無いスレにまで粘着してくる奴が居るから嫌だよ。
馴れ合い系の板ならそれでも良いかもしれないけど、ここはそうじゃないからね。
0146デフォルトの名無しさん2008/10/31(金) 06:05:19
>>141
そこは実効性の無いガス抜き用のスレでしょ。
いたずらに議論を煽るのは感心しないな。
0147デフォルトの名無しさん2008/10/31(金) 09:10:53
コピペに反応するなよ・・・
0148デフォルトの名無しさん2008/10/31(金) 10:21:38
専用ブラウザでみてるからつまらん煽りなどをあぼーんするのにも役に立つ<ID
0149デフォルトの名無しさん2008/10/31(金) 14:24:48
賛成だけど
こんな過疎スレじゃ役に立たない気がする
0150デフォルトの名無しさん2008/10/31(金) 15:48:32
自治スレでやれよ
だれも書き込んでないけどw
0151デフォルトの名無しさん2008/10/31(金) 23:11:53
板全体の問題だからここで議論するこっちゃないよ。
0152デフォルトの名無しさん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
0153デフォルトの名無しさん2008/11/01(土) 09:44:34
MS超関係ねぇー!
0154デフォルトの名無しさん2008/11/01(土) 16:28:55
R5RSでキボンヌ
0155デフォルトの名無しさん2008/11/01(土) 17:08:53
(car 'R6RS)
=> R
(cdr 'R6RS)
=> R5RS
0156デフォルトの名無しさん2008/11/02(日) 01:39:14
5と6の違いまでまだわからないのですが、
上位互換ということですね?
0157デフォルトの名無しさん2008/11/02(日) 01:56:19
釣りなら他所でやってくれないかな?
0158デフォルトの名無しさん2008/11/02(日) 02:46:39
なんでそんな殺伐としてるの?
以前のあなたはそんな風じゃなかった…
0159デフォルトの名無しさん2008/11/02(日) 08:24:42
R6RSが出てから、全てが変わってしまった……。
全部R6RSが悪いのよ!
0160デフォルトの名無しさん2008/11/02(日) 08:49:54
http://www.atmarkit.co.jp/fcoding/articles/gauche/01/gauche01a.html
0161デフォルトの名無しさん2008/11/02(日) 12:04:07
>>159
いや、R5RSのバグが悪い。
0162デフォルトの名無しさん2008/11/03(月) 01:26:25
>>160
Gauche on Rails作ってる人だよね。
頑張ってるなー。
0163デフォルトの名無しさん2008/11/06(木) 20:47:01
Gauche on Railsって今後バージョンアップとかしていくのだろうか。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Lispが「普通の言語」になる時(最も「強い」部分がLisp固有のものではなくなる時)は、
他の言語も括弧だらけになってる時だから、Lispを表現するのに「括弧の多い」という形容は
もはや使われていないはず。
0229デフォルトの名無しさん2008/11/09(日) 15:03:20
>>226
大概の問題は、工学的手法で解決できるものだよ。日本の得意分野じゃん。
完全な再現はできないかもしれないけれど、その過程で新たな技法が
見つかることもよくある。
最悪、達成できなくても、それなりの成果ってでるよ。
何もしなかったら何もでないけど。
0230デフォルトの名無しさん2008/11/09(日) 15:09:53
>>222
マクロよりはちょっとだけ落ちるけど、
名前呼びができる言語はLispに肉薄してると思う。
まあ、Lispが最強なことには変わりないが。
0231デフォルトの名無しさん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
0232デフォルトの名無しさん2008/11/09(日) 15:22:25
名前呼びって Algol の Call by name ?
Algol 以外にメジャーな言語で Call by name の(ある)ものってあったっけ?
0233デフォルトの名無しさん2008/11/09(日) 15:24:18
非S式に(Lisp的な)マクロを積もうってのは、
DylanとかBooとかで試みられていたような
あと最近だと、高校生が設計したとかで話題になってたCyanとかもか

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

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

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

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

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

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

Pythonの強みは、全然違うポイントにあると思います
0249デフォルトの名無しさん2008/11/09(日) 16:14:28
>>245
Pythonはあらゆる仕事ができるし、できない仕事はやる価値がない。
PCL?未だにPracticalとか言ってる時点で終わってる。
 Pythonはすべてが実務だ。
0250デフォルトの名無しさん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 のこんな構文木をいじれるのは本当の
> エキスパートだけだろう。
(以下略)
0251l246227.ppp.asahi-net.or.jp 2008/11/09(日) 16:21:13
糞なMSやアホなGoogleや詐欺なAppleや貧乏なNASAが使ってる言語なんか
使いたくないな
0252デフォルトの名無しさん2008/11/09(日) 16:29:33
navi2chお?
0253デフォルトの名無しさん2008/11/09(日) 16:40:14
Emacs使ってる奴が多いってことかw
0254デフォルトの名無しさん2008/11/09(日) 16:41:17
emacs 使わずに lisp なんて触れない。
0255デフォルトの名無しさん2008/11/09(日) 16:42:52
専ブラのバージョンアップもしてない情報弱者様登場!
0256デフォルトの名無しさん2008/11/09(日) 16:45:47
>>254
pgはvimを使ってる
02571742008/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再開
のようなものばかりで,質問の例の使い方をこの用法に対応させて考えることができません.
なにとぞよろしくご指導のほどお願いします.
0258デフォルトの名無しさん2008/11/09(日) 17:51:03
(define cont #f)
(call/cc (lambda (k) (set! cont k) 30))
(procedure? cont)




0259デフォルトの名無しさん2008/11/09(日) 17:58:52
「継続も手続きの一種だから」でいいのかな?
0260デフォルトの名無しさん2008/11/09(日) 18:15:55
多くの人が必要としているのは
拡張ライブラリ。電池。いわゆるバッテリー。
0261デフォルトの名無しさん2008/11/09(日) 18:17:48
apply出来るからね。
0262デフォルトの名無しさん2008/11/09(日) 18:35:45
R6RS のマクロとライブラリの関係で炎上しているらしいのだが、意味がよくわからん。
http://groups.google.co.jp/group/comp.lang.scheme/browse_thread/thread/8927053ede92fd27/d055da2e0676952e
誰か簡単な説明をたのむ。
0263デフォルトの名無しさん2008/11/09(日) 18:40:20
グレアムの本で読んだと思うけど、世紀の大発明セグウェイの
制御プログラムってPythonで書かれてるらしいね。
0264デフォルトの名無しさん2008/11/09(日) 18:41:40
usenet の comp.lang.scheme っていうだけで敬遠する
02651742008/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.
の意味がようやくわかりました. 今まで全く理解できていませんでした. お教えいただきましてありがとうございました!
0266デフォルトの名無しさん2008/11/09(日) 21:11:27
>>263
グレアムが書いてたのは、ViaWeb同僚のトレバーが作った「セグウェイもどき」の話。

0267デフォルトの名無しさん2008/11/09(日) 22:48:06
loopマクロみたいにpythonマクロとかrubyマクロとかperlマクロを書けばいいじゃない
0268デフォルトの名無しさん2008/11/09(日) 23:02:07
なんだもどきか、、早とちりだった。
()の対応見直してから寝ます。
0269デフォルトの名無しさん2008/11/09(日) 23:42:27
call/ccが引数に渡す継続手続きは普通の手続きとは違う。
末尾コンテキスト以外で呼び出しても
あたかも末尾呼び出しされたかのように返ってこない。
これさえなければ参照透明性を侵さないと思うのですが。
末尾コンテキスト以外での継続の呼び出しなんてトリッキーなんだから
普通の手続きとして実装すればいいのに。
0270デフォルトの名無しさん2008/11/09(日) 23:45:33
>>267
そこで、やさしいCプログラミングですよ
ttp://www.pro.or.jp/~fuji/computerbooks/c/c.modula2.html
0271デフォルトの名無しさん2008/11/10(月) 00:31:58
vallink っていうフリーのリンカがマジでマクロ使いまくりで Pascal っぽい雰囲気になってたのを思い出した。
0272デフォルトの名無しさん2008/11/10(月) 01:08:02
RLISP(笑)
0273デフォルトの名無しさん2008/11/10(月) 02:24:20
>>270
藤原さんは相変わらず文章が(ry
0274デフォルトの名無しさん2008/11/10(月) 02:44:35
久しぶりに読んだが、こんなに面白い読み物だったのかw
いろんな意味で涙が出てくる
0275デフォルトの名無しさん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 '() '()))]))
0276デフォルトの名無しさん2008/11/10(月) 08:28:38
累積引数(res)を使った末尾再帰化の典型で、
特に名前はないと思う。
0277デフォルトの名無しさん2008/11/10(月) 09:33:18
>>269
末尾コンテキストじゃないとこで継続手続きを呼べなかったらcall/ccの意味が無くなるぞ
(全部CPSで書けば済むことだから)
0278デフォルトの名無しさん2008/11/10(月) 11:23:21
>>271
あれを読もうとしたことがあるやつが俺以外にもいるとはw
あと有名なのが元祖 B Shell とか。IOCCC を開催する動機のひとつになったともいう。
0279デフォルトの名無しさん2008/11/10(月) 11:35:11
スレ違いだが
>>278
http://minnie.tuhs.org/UnixTree/V7/usr/src/cmd/sh/mac.h.html
0280デフォルトの名無しさん2008/11/10(月) 11:53:48
>>269
末尾以外でも使えないと大域脱出のときに困るのでは?
0281デフォルトの名無しさん2008/11/10(月) 12:57:18
戻ってきたら継続じゃないだろうそれ……
0282デフォルトの名無しさん2008/11/10(月) 15:58:52
Littleで質問です。
9章のY-Combimatorの説明は大体わかったんだけど、
(lambda (waha)
 (lambda .(a lat) ....(waha ....)....))
で再帰できないみたい。
なんか間違ってる?
0283デフォルトの名無しさん2008/11/10(月) 16:02:02
突っ込まれるまえに
> .(a lat)
先頭のドットはミスでつ。入りません。
0284デフォルトの名無しさん2008/11/10(月) 18:29:45
>>282
誰がapplyしてくれてるの?

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



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

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

何言ってるのこの人?
天然なの?釣りなの?
0288デフォルトの名無しさん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?を満たすことには違和感を覚えます。
0289デフォルトの名無しさん2008/11/10(月) 20:24:26
ああURL化けしちゃった
WilikiのScheme:call/ccと副作用という項です
0290デフォルトの名無しさん2008/11/10(月) 20:41:06
手続きにしたいなら自分で作ればいいじゃん
(define(手続き)(call/cc(lambda(c)c)))
ちなみに継続は副作用じゃないよ
そこにあって当然のものを持ちまわれるようにしただけ
0291デフォルトの名無しさん2008/11/10(月) 20:47:25
継続は副作用じゃないけど
call/ccは副作用なんです
0292デフォルトの名無しさん2008/11/10(月) 20:51:46
>>288
> 手続きと違うものなのにprocedure?を満たすことには違和感を覚えます。

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

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

>>299
CPSで継続にgo toしてるように見えるのは
もともとその呼び出しの後に継続がないからgo toするように最適化されるだけです。
0302デフォルトの名無しさん2008/11/10(月) 21:04:15
継続オブジェクトをを「普通の」手続きで実装する。
↓
・末尾文脈で呼び出せば脱出に使える。
・副作用を起こさない。
0303デフォルトの名無しさん2008/11/10(月) 21:11:59
おまえ副作用って聞いて、バファリンとか思い浮かべてない?
おれらはそんなやさしくねえぞ
0304デフォルトの名無しさん2008/11/10(月) 21:12:17
>>302
> ・末尾文脈で呼び出せば脱出に使える。

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

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


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

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

ちなみに方向は逆の話だが面白かった。
Flatt, Yu, Findler, Felleisen
Adding Delimited and Composable Control to a Production Programming Environment
0309デフォルトの名無しさん2008/11/10(月) 22:15:17
戻ってくる継続というとyield returnですね。
0310デフォルトの名無しさん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。という風に、普通の関数と同じように使える。
0311デフォルトの名無しさん2008/11/10(月) 23:12:35
あれは継続使って実装できるコルーチンだわな。
0312デフォルトの名無しさん2008/11/11(火) 00:22:55
>>311
!?

コルーチンきれい!
ふしぎ!!
0313デフォルトの名無しさん2008/11/11(火) 00:32:59
継続の典型例を4つほど紹介汁。叩台にドゾ。
http://codepad.org/T0Di1QCK
0314デフォルトの名無しさん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つしかくれない......
って泣きつかれます。

> またおまえか
別の無名さんでつ
0315デフォルトの名無しさん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)))))))
0316デフォルトの名無しさん2008/11/11(火) 03:26:54
Y2の使用例
http://codepad.org/KbHy4nk9
0317デフォルトの名無しさん2008/11/11(火) 07:58:22
>>310
上の他のレスでもあることだけれども、継続と継続関数を混同しているね。
だから「継続」が「終わる」とか「戻る」とか言葉使いがちょっと変。話題に合
わせてわざとやっているのかな?
0318デフォルトの名無しさん2008/11/11(火) 10:00:08
>>315, >>316を>>282, >>314風に書くとこんな感じだ。
http://codepad.org/o5QUidyU

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

Common Lispなら (funcall ...) と (return-from ...) の違いは明確だから
混同するやつはいない。
Schemeではfuncallもreturn-fromも省略された形で、見た目では区別できなくなった。
0320デフォルトの名無しさん2008/11/11(火) 10:19:33
継続は手続きである。
手続きは戻るものである。
故に継続は戻る物である。
継続が戻らないとすれば
継続は手続きではない、または
手続きは戻るとは限らない。
0321デフォルトの名無しさん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
0322デフォルトの名無しさん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))
0323デフォルトの名無しさん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風の意味論で顕著。
0324デフォルトの名無しさん2008/11/11(火) 11:01:31
>>321, >>322を書き換えて名前空間を汚さないようにすると:
http://codepad.org/QpVFT6bC
0325デフォルトの名無しさん2008/11/11(火) 11:44:11
>>313の継続の例に追加。Amb演算子(choose)。
http://codepad.org/FJTpKfWe
0326デフォルトの名無しさん2008/11/11(火) 11:59:03
>>323
R5RSの1.1にはコンティニュエーションは"first class" statusとあります。
ただ
> オブジェクトには手続きとコンティニュエーションが含まれる。
とあるので暗に手続きとcontinuationは別ものであるように書かれています。
脱出手続きはScheme手続きであるという表現がありますので
仰るように脱出手続きとコンティニュエーションは別と考えられます。
そうなると"first class" statusにあるコンティニュエーションはどのように得られるのでしょうか?
ただ単に1章では脱出手続きとコンティニュエーションを意図的に混同して書かれただけなのでしょうか?
0327デフォルトの名無しさん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"って書いてあることあるし。
0328デフォルトの名無しさん2008/11/11(火) 13:45:49
あ、勉強中の人は神経質なくらい使い分けた方が、混乱しないと思います。
念のため。
0329デフォルトの名無しさん2008/11/11(火) 13:56:38
>>327
その文言は"-"を除いてR5RSにもありますね
もっとしっかり読み込んでみます
0330269,306他2008/11/11(火) 14:42:52
>>308>>310
ありがとうございます、読んでみます。

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

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

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

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

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

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

maximaの変数aはlispで$aになる
という変換があるけど
jacalでどんな変換になってるかの資料をみつけられないのです
0360デフォルトの名無しさん2008/11/13(木) 20:02:31
ソース読め。sexp.scmなど。
0361デフォルトの名無しさん2008/11/13(木) 20:54:35
>>354
私はすごい困っているんで、どうにかして欲しいです。。。
特にrun, break, watchがしたくて仕方が無い。
0362デフォルトの名無しさん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は使わないんで、デバッガの良さは語れないけども、
色々頑張ってる処理系だとは思う。
0363デフォルトの名無しさん2008/11/14(金) 00:40:28
と、書いてて思ったんだが、デバッガ欲しい人たちって、
EmacsでM-x run-schemeとか使ってる?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(map (lambda (op) ((eval op (scheme-report-environment 5)) 10 2)) '(+ - * /))
0382デフォルトの名無しさん2008/11/15(土) 04:50:50
最近、JITコンパイラありの言語処理系が増えてきたから、
(Lisp/Scheme界ではまだそうでもないが)
デバッガ開発のコストが凄く上がってる。
例えばv8はネイティブ実行オンリーだから、
デバッグモードではインタープリターに格下げってわけにいかないし。
0383デフォルトの名無しさん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 '+ '- '* '/)) ; '(+ - * /)

最も初歩的な処理系が作れるようになってよかったね。
0384デフォルトの名無しさん2008/11/15(土) 09:26:03
>>381
値としては同じだけど前者は定数扱いだから
実装によっては変更不可の場合がある
0385デフォルトの名無しさん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 + - * /))

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

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

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

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

なんでYpsilonを攻撃するのか、Gaucheを持ち上げるのか理解に苦しむ。
0393デフォルトの名無しさん2008/11/15(土) 10:27:22
別に攻撃しているわけじゃないよ。
どちらかというと、どの処理系を使えばいいのかわからんという愚痴。
0394デフォルトの名無しさん2008/11/15(土) 10:39:40
>>391
それがGaucheで使えるのはshiroさんも知らなかったらしいですね
(Wilikiのとおる。さんの項より)
0395デフォルトの名無しさん2008/11/15(土) 10:43:12
>>391
規格には無い挙動だよね?
伝統的に許容する処理系は少くないみたいだけど
0396デフォルトの名無しさん2008/11/15(土) 10:46:09
R2RSまでは規格にあったそうで
R3RSで削除されたそうです
0397デフォルトの名無しさん2008/11/15(土) 12:04:35
('A`)y-~
0398デフォルトの名無しさん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は確かに魔法じゃないけど、けっして限界があるわけじゃない、と思ってる。
誰か意見を聞かせてほしい。
0399デフォルトの名無しさん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の場合は
ブレイクを行うか調べたり、現在実行している行の更新を行ったりします。
まあ、そこまで難しくないというだけで、ある程度のマンパワーが必要なのは事実なのですが。
0400デフォルトの名無しさん2008/11/15(土) 13:49:49
>>391
(define ((compose f g) x) (f (g x))) とか使いたい場合にはR6RSの処理系ならばこうすればいいです。
http://codepad.org/RWzYeHo5
0401デフォルトの名無しさん2008/11/15(土) 14:03:03
>>398
Lispで実装すると決め打ちすると、最適化の邪魔になるかもしれないよ。
仕様を見てから最適な実装言語を選ぶべきじゃないの?
勘で選ぶのではなく、数学的なやり方で。

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

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

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

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

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

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

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

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

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

とはいえ型付きLispはほしいですね
0432デフォルトの名無しさん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))
ってことにすれば
0433デフォルトの名無しさん2008/11/15(土) 20:37:07
静的な型矛盾の検出は?
0434デフォルトの名無しさん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)) ; ×
0435デフォルトの名無しさん2008/11/15(土) 20:45:06
(declare-type number-vector (apply vector (cons int number-list)))
0436デフォルトの名無しさん2008/11/15(土) 20:47:03
>>433
その前に、静的な型矛盾とは?
0437デフォルトの名無しさん2008/11/15(土) 20:50:36
>>436
静的な:実行時でなくコンパイル時もしくはロード時に
型矛盾:型エラーをおこす(|してほしい)ような式
0438デフォルトの名無しさん2008/11/15(土) 20:58:02
>>434
number-listの終端条件がない
無限リスト?
0439デフォルトの名無しさん2008/11/15(土) 21:05:29
>>437

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

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

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

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

乜勹〰スㄜㄝㄋ

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

ヺ〲
〳〵ヷヷ〰〳〵ヷヷ〰
0446デフォルトの名無しさん2008/11/16(日) 08:01:43
>>445
0447デフォルトの名無しさん2008/11/16(日) 18:53:33
>>338-345で言ってたの本当だという気がしてきている。
0448デフォルトの名無しさん2008/11/16(日) 18:55:13
MITのトイレは既にLisp制御じゃないぞ
0449デフォルトの名無しさん2008/11/16(日) 21:17:40
それはポールの友人のトレバーが書いた「もどき」では。
0450デフォルトの名無しさん2008/11/16(日) 22:19:47
Python版のSICPはもう出版されてるの?
0451デフォルトの名無しさん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がデバッガの実装手法を知らないと思ってるのか、
頼みもしないのに、余計なことも含めてデバッガ事情を長々と……。

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

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

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

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












ということで、デバッガのことは彼にまかせようや
0468デフォルトの名無しさん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なんだけど
0469デフォルトの名無しさん2008/11/17(月) 21:47:28
linuxだとどこが悪いのか収拾付かないから
*BSDにした方がいいよ
0470デフォルトの名無しさん2008/11/17(月) 22:31:21
>>462
その辺のレイヤーってどの辺?最適化?
個人的にLLVM興味持っているんだけど、あんまり情報ないね…
0471デフォルトの名無しさん2008/11/17(月) 22:41:20
>>470
つ JIT+デバッグAPIプリミティブ
0472 ◆KGuq.Ts1uc 2008/11/17(月) 23:23:53
>>376
> 「副作用無しにプログラムを書くべき」という主張はわかりますし、
> 「テストしやすいようにモジュール化すべき」というのも理想としては分かります。
> しかし、デバッグ環境が貧弱なためにそう書かざるを得ないというのは
> 非常にダサいのではないでしょうか。

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

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

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

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

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

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

一方発言者の頭は、硬い柔らかい以前に「悪い」で綺麗に統一されてそうではある。
0495デフォルトの名無しさん2008/11/19(水) 13:28:33
Gaucheにデバッガが欲しいと2chに書いてみた
↓
賞賛をもって受け入れられるハズが喰い付きが悪いので悩む
↓
持論を作者本人にぶつけるべくWilikiに凸撃
↓
Shiroさんとも話が噛み合ないので悩む(Lisper/Schemerのプログラミングスタイルを理解してないので当たり前)
↓
勢い余って俺が仕様提示するから好きなの実装しろと書いてしまう
↓
それはおかしいだろという突っ込みが横から入る
↓
慌ててページ整理のフリをしてコメントをすべて見えないように
↓
編集履歴には残ってしまうので途方に暮れている ← いまココ
0496デフォルトの名無しさん2008/11/19(水) 13:35:41
「プログラミングGauche」のデバッグの章を読んだ上での犯行なんだろうか?
0497デフォルトの名無しさん2008/11/19(水) 13:51:34
>>496
読んでいたら突撃しないと思うが?
0498デフォルトの名無しさん2008/11/19(水) 14:40:15
それが若さってものだろう・・・でも「瓢箪から独楽」ってこともあるからな、節度を持ってがんがれ!
0499デフォルトの名無しさん2008/11/19(水) 14:44:57
疑われてないと思うけどぽっくんではないお。
0500デフォルトの名無しさん2008/11/19(水) 15:01:50
Gaucheの配下に移ったけど、GaucheどころかSchemeとは関係ない
・デバッガ一般論
・別の言語のデバッガAPI
の話しかないなあ。
0501デフォルトの名無しさん2008/11/19(水) 17:57:46
> 内容はhistoryに残しましたので
し?
0502デフォルトの名無しさん2008/11/19(水) 19:54:51
schemeって規模の大きいソフトにも使えるの?
namespaceなくてもなんとかなる例はemacs lispみてればなんとなく予想つくけど
0503デフォルトの名無しさん2008/11/19(水) 20:17:32
>>499
お前のことは誰も疑ってないから安心しろ。

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

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

(use slib)
(require 'eps-graph)

できなかった
パイプでgnuplot使うのが普通なの?
0531デフォルトの名無しさん2008/11/20(木) 15:09:58
>>530
(require 'eps-graph) の前に (require 'color)
0532デフォルトの名無しさん2008/11/20(木) 18:25:31
goucheでscmutils使えなくて困ってる。
どうやったら使える?
特にup, down, literal-function, definite-integralとか。
0533デフォルトの名無しさん2008/11/20(木) 20:11:32
Gaucheで動くのかい?
Unix系のMIT-Schemeにべったり依存じゃなかった?
動いたらうれしいね。SICMが試せるよ。
0534デフォルトの名無しさん2008/11/20(木) 20:18:47
>>533
>Unix系のMIT-Schemeにべったり依存じゃなかった?
随分古い情報ですね。Guile用とか出てますよ。
べったり依存は過去の話でしょ。
0535デフォルトの名無しさん2008/11/20(木) 20:39:01
Guile用はここだね。
http://www.cs.rochester.edu/~gildea/guile-scmutils/
0536デフォルトの名無しさん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)
0537デフォルトの名無しさん2008/11/20(木) 21:41:39
うわ〜、教えてください。
Gaucheに移植されたscmutilsってどこで入手できるんですか?
0538デフォルトの名無しさん2008/11/20(木) 23:53:27
>>537
あなたがこれから移植すれば入手できます
0539デフォルトの名無しさん2008/11/21(金) 01:56:21
ああ、やっぱりね。
0540デフォルトの名無しさん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))
0541デフォルトの名無しさん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終わり
0542デフォルトの名無しさん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からだね。
0543デフォルトの名無しさん2008/11/21(金) 17:46:43
ちょっと手間かければ誰でも作れるものが作られてないというのは
schemeがちょっとしたものなら自分で作れ
という文化だからなの?
0544デフォルトの名無しさん2008/11/21(金) 17:54:29
ちょっとしたものなら一瞬で作れてしまうスパーハカーばかり
という文化のせいではなかろうかとふと思った。
0545デフォルトの名無しさん2008/11/21(金) 19:47:21
>>496-497
その本手元にないから立ち読みしてきた。
単にデバッガーを使わないデバッグテクニックを紹介してるだけじゃねーか。

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

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

Knuth先生もMMIXエミュにデバッガ付けてましたが…
パイプラインレベルまでもエミュするCPUエミュレータw
0557デフォルトの名無しさん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)))
0558デフォルトの名無しさん2008/11/22(土) 00:19:48
>>555, >>557
リストの長さが同じ場合には上手く動くけど、
長さが違う場合にはSRFI-1のzipのようには動かないです。
http://codepad.org/fwVVGnZJ
>>552のmap listの例はそういう条件でzipと同じ動作をしているので、
完全なzipの代替品ではないことに注意。
0559デフォルトの名無しさん2008/11/22(土) 01:04:09
>>546
用語の間違いを指摘することでしか反論できないようだな。
0560デフォルトの名無しさん2008/11/22(土) 01:15:02
デバッガーは1.0になってからって話が既に出てるだろ。
0561デフォルトの名無しさん2008/11/22(土) 01:25:56
>>559
「表記」でしょ?
0562デフォルトの名無しさん2008/11/22(土) 01:31:58
>>559
しょーもない釣りはいらん。よそでやれ。
0563デフォルトの名無しさん2008/11/22(土) 02:27:30
>>558
なるほどね。たしかにリストの長さが違うと文句言われるよね。
行列ならリストの長さが同じだから気がつかないのか。
http://codepad.org/RGXMLkWF
http://codepad.org/HEst35w8
http://codepad.org/huWMYkFF
正方行列以外でも問題がないから同じように思ってたよ。ありが�d。
0564デフォルトの名無しさん2008/11/22(土) 05:35:28
>>556
ありがとう。

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

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

0574デフォルトの名無しさん2008/11/22(土) 17:13:39
Little Schemer大体読み終わったけど、この本の会話みたいに
宣言的に書く・考えるということにどうも慣れません。
この先Schemerシリーズの続きあるいはLittleの復習、
Gauche本、萩谷先生の関数プログラミング
どれから読むのが良いですか?
0575デフォルトの名無しさん2008/11/22(土) 17:26:13
マジキチ
0576デフォルトの名無しさん2008/11/22(土) 18:08:19
On LispとかSICPでも読んでみれば?
Little SchemerはSeasonedと2冊で1セットだけど、
いやになったなら寄り道するのもいいと思うよ。
0577デフォルトの名無しさん2008/11/22(土) 18:15:10
個人的には萩谷先生の「関数プログラミング」が好きだったね。
もし古本屋にあれば「ソフトウェア考現学」もマニアックで良かったよ。
0578デフォルトの名無しさん2008/11/22(土) 18:46:31
PGの「ハッカーと画家」なんかをお勧めしたいなぁ。
Schemeのどういうプログラミングスタイルが効果的なのかを教えてくれるし、
どういったことを出来るようになると良いかを考えるきっかけになるから。
自分のやりたいことをハッキリさせれば読むべき本も自分で探せるようになるんじゃないかなぁ。
0579デフォルトの名無しさん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
0580デフォルトの名無しさん2008/11/22(土) 22:37:09
>>579
> >>570のはこう書き換えられるのに気がつきました。

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

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

うわ〜、難しいですね。

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

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

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

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

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

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

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

むろんgauche-GLとか使ってもよいと思いますが、あの例には大げさに思えます。
0633デフォルトの名無しさん2008/11/25(火) 20:43:44
グレアムのANSI CLのレイトレーサの所でもPPM形式を使ってますね
0634デフォルトの名無しさん2008/11/25(火) 22:19:47
Vim+MZSchemeをインタフェース使ってる方っていらっしゃいますか?
Emacs Lispと比べてどんな感じですか?
if_mzschをベースにif_guileとかデッチ上げると幸せになれますか?
06356342008/11/25(火) 22:20:25
をの挿入位置間違えました
Vim+MZSchemeインタフェースを使ってる方、です
0636デフォルトの名無しさん2008/11/25(火) 23:24:02
>>627
このへんに実例あり
ttp://d.hatena.ne.jp/higepon/20060426/1145547441
ttp://d.hatena.ne.jp/aike/20081124
0637デフォルトの名無しさん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に投げたら総スルーだったこととか関係ありで。
0638デフォルトの名無しさん2008/11/26(水) 16:41:37
ブラックベリーやノキアでSchemeできないかなあ。
SchemeだけのためにPalm買うってのも何だし。
でも手軽に持ち歩いてどこでも勉強したい。ゲーム感覚で。
0639デフォルトの名無しさん2008/11/26(水) 17:19:23
つザウルス
NintendoDSでSchemeを動かしたって話が過去スレにあったような気も
06406342008/11/26(水) 20:59:22
>>637
ありがとうございます、HP拝見させていただきました。
ソースは見られるけどtarやzipでダウンロードしようとするとNotFoundになりますね。
最近Emacs Lispでプログラムを書くのにストレスが溜まって来たので
VimをSchemeで制御できるのなら乗り換えようかと思った次第です。
とりあえず:guileコマンドだけ実装してみました。
(MSGを一回使わないと入力したコマンドが画面に残るのはなぜなんでしょう?)
0641デフォルトの名無しさん2008/11/26(水) 21:19:47
>>636
Gauche の公式サイトに置いてある mingw バイナリでは SDL って使えないの?
0642デフォルトの名無しさん2008/11/27(木) 01:03:50
Little Schemer面白い。
10代の頃に感じたコンピューテーションへのセンス・オブ・ワンダー
みたいなものがよみがえる。
ただ英語がどんな空気なのか読めないのが悔しい。
0643デフォルトの名無しさん2008/11/27(木) 01:11:16
Thundergirl Mutation
0644デフォルトの名無しさん2008/11/27(木) 04:00:18
Computed Stevie Wonder
0645デフォルトの名無しさん2008/11/27(木) 04:06:54
Little computed Stevie Wonder
0646デフォルトの名無しさん2008/11/27(木) 12:33:47
m(_ _)m
0647デフォルトの名無しさん2008/11/27(木) 14:35:45
slibの
matrix:product
が長い
mprod
mdet
minv
などの短い名前に変えると
何かと名前がぶつかることあるのか
0648デフォルトの名無しさん2008/11/27(木) 19:51:54
名前が長い等の問題はユーザーにまかせておけばいいやって感じだな。
マクロもそうだし、そもそも処理系を選ぶだけでもユーザーの負担が大きい。
0649デフォルトの名無しさん2008/11/28(金) 23:04:49
Emacs Lispが正規表現を文字列で記述することに対する不満は見かけるのに
Scheme(除くGauche、PLTScheme)やCommon Lispではさっぱり見かけないのが不思議だったのですが
Emacs Lispと違ってリーダマクロがあるからだったんですね(たぶん)
リーダマクロのあるScheme処理系が結構多いということをはじめて知りました
0650デフォルトの名無しさん2008/11/28(金) 23:20:15
Emacsはギャップバッファに対する正規表現サーチが
組み込み関数なんだよ。
ギャップバッファの性質上、(point)使って実装すると遅い。
Lisp/Schemeは、pregexpみたいなライブラリを自前で書いても
それほど速度は落ちない。まともなコンパイラさえあれば。
;; むしろpregexpは他言語のライブラリと比べても速い。
06516492008/11/28(金) 23:44:30
あ、速度はともかく「バックスラッシュのお化け」なところです。
CLでppcreをコンパイルするとperlよりも速いそうですね。

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

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

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

意図的に糞言語を選んでキラーアプリを作ってみせる人間もいるかもな
0672デフォルトの名無しさん2008/12/02(火) 22:28:33
「ちょっと変わったLisp入門」の第2回っていつ出るの?
0673デフォルトの名無しさん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::::::::::::::::::/ /:::::::::::/:::::(ヽ--─  / |  /
         ヽ_=--"⌒ ゙゙̄ヾ:/ /:::::::/:::::::::`<==-- ノ / /
0674デフォルトの名無しさん2008/12/03(水) 21:00:46
ttp://d.hatena.ne.jp/higepon/20081203/1228303268

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

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

単一の言語でやろうとすればC++の二の舞になる予感が
0735デフォルトの名無しさん2008/12/07(日) 22:44:32
あらかじめ静的にあれば動的なメモリ確保なんてほとんど使わないっしょ
ゲームとか組み込みとか
それよ
0736デフォルトの名無しさん2008/12/07(日) 22:47:38
いつの時代のゲームだよ。
0737デフォルトの名無しさん2008/12/07(日) 22:48:25
全部without-gcingすれば?
0738デフォルトの名無しさん2008/12/07(日) 23:40:11
consの扱いに困る。
人間のこなせる煩雑さではなくなってしまう。
0739デフォルトの名無しさん2008/12/07(日) 23:43:16
>>738
ブロックで囲めばいいんでは。
必要なものはブロック内でマークしといて、
それ以外のブロック内で確保されたやつは抜けた時に全部削除。
0740デフォルトの名無しさん2008/12/07(日) 23:56:07
>>736
今のゲームでも最大長みたいなのは判ってるから
固定プール内でやる事が多いよ。
あまり時代に関係ないと思うが。
0741デフォルトの名無しさん2008/12/08(月) 00:00:50
>>739
関数やブロック内で寿命を終えるコンスセルの方が圧倒的に少ない。
0742デフォルトの名無しさん2008/12/08(月) 00:07:33
そりゃわがままだろ
0743デフォルトの名無しさん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つかえますか
0744デフォルトの名無しさん2008/12/08(月) 01:29:01
連レス失礼します。
環境はWindows XPでMeadow21.4.1です。
0745デフォルトの名無しさん2008/12/08(月) 01:36:55
>>743
おそらくだが、slibcat を一旦削除すれば良いと思う。
slib 自体のインストールは出来てるよな?
0746デフォルトの名無しさん2008/12/08(月) 01:37:55
ここはGaucheサポート掲示板じゃないから
0747デフォルトの名無しさん2008/12/08(月) 01:59:13
>>745
ありがとうございます!一発解決しました!

>>746
すみませんm(_ _;)m
0748デフォルトの名無しさん2008/12/08(月) 15:19:34
論理否定が理解できるなら継続も理解できる筈って言われたんだけどマジですか?
0749デフォルトの名無しさん2008/12/08(月) 15:24:00
カリー、ハワードの対応とかいうあれ?
0750デフォルトの名無しさん2008/12/08(月) 15:36:40
論理否定も継続も理解してるつもりだが、相関はわからん。
カリー・ハワードを勉強すればわかるの?
0751デフォルトの名無しさん2008/12/08(月) 22:30:03
オリジナル
http://recherche.ircam.fr/equipes/repmus/Agon/PPIM/griffin.pdf
日本語の書籍
http://www.amazon.co.jp/exec/obidos/ASIN/4062583410/
パースの法則との関係
http://www.kurims.kyoto-u.ac.jp/~kyodo/kokyuroku/contents/pdf/0992-24.pdf
概観
http://en.wikipedia.org/wiki/Curry-Howard_correspondence
0752デフォルトの名無しさん2008/12/08(月) 23:23:32
Curry-Howard の概観なら、これとか判り易かった。
http://www.kmonos.net/wlog/61.html#_0538060508
0753デフォルトの名無しさん2008/12/08(月) 23:30:15
という用語を作り、SF ファンとして有名なフォレスト・J・アッカーマン氏が 12 月 4 日に 92 歳で死去したそうだ
0754デフォルトの名無しさん2008/12/08(月) 23:35:19
アッカーマン関数の?
0755デフォルトの名無しさん2008/12/09(火) 07:38:17
http://lining.kir.jp/internet/internet16.html
> Common Lisp
有名な話なのかな。やっぱりAllegroなのかな。
0756デフォルトの名無しさん2008/12/09(火) 07:38:33
ほう、newlisp10.0が来ましたな
0757デフォルトの名無しさん2008/12/09(火) 11:15:05
>>754
そっちはヴィルヘルム・アッカーマン。
0758デフォルトの名無しさん2008/12/09(火) 11:31:51
>>734
他の言語との連携が前提なら処理系ごとに違うffiをなんとかしてください
0759デフォルトの名無しさん2008/12/09(火) 12:27:39
>>758
統一できるかどうかは直接は関係ないと思うんだ。
問題があるとすれば "ad hoc, informally-specified, bug-ridden, slow" のどれか。
0760デフォルトの名無しさん2008/12/09(火) 23:24:54
>>755
おそらく湾岸戦争の兵站支援システムのことだろうね。Allegroです。
他にも軍の研究所とかがたまに人を募集していたなぁ。
0761デフォルトの名無しさん2008/12/10(水) 01:29:49
>>760
Lispハカーの募集をしていたということですか?
0762デフォルトの名無しさん2008/12/10(水) 17:46:47
>>760
ある程度大きいもの作ろうとするとnamaspaceありのcommon lispになるのか

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

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

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

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

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

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

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

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

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

マニュアルに書いてあるよ。
0831デフォルトの名無しさん2008/12/20(土) 23:37:40
>>826
SCIPに誰も突っ込まないのな
まさかskipとか言うオチ?
0832デフォルトの名無しさん2008/12/21(日) 00:43:08
>>830
アタマのいい人ってのはすげぇなぁ
0833デフォルトの名無しさん2008/12/21(日) 09:58:19
>>832
(ノ´∀`*) テレル
0834デフォルトの名無しさん2008/12/21(日) 10:19:23
「HaskellでSchemeを48時間」、
Exerciseを全部やったとは言え、
480時間くらいかかった俺が通りますよ
0835デフォルトの名無しさん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
0836デフォルトの名無しさん2008/12/22(月) 04:04:36
>>835
書き忘れた。
自宅のはCeleron 2.66Ghz。
サーバーのCPUって何だろう?
0837デフォルトの名無しさん2008/12/22(月) 09:15:07
速度差が五倍ぐらいだからCore2Duoジャマイカ?
と思ったけど
http://codepad.org/xVGG7r0w
やってみたらもっと速くなった。Core4Quadか?
0838デフォルトの名無しさん2008/12/22(月) 11:02:22
Dual-Core AMD Opteron(tm) Processor 2218 HEのようですね
ttp://codepad.org/QLNrvm3p
0839デフォルトの名無しさん2008/12/22(月) 23:28:51
>>838
ありがとうございます
0840デフォルトの名無しさん2008/12/23(火) 20:56:20
「Let Over Lambda」ってどうなの?
0841デフォルトの名無しさん2008/12/23(火) 21:32:23
2CHで レス番+名前の行をWクリックで折り畳む機能っていつからついたの?
0842デフォルトの名無しさん2008/12/23(火) 21:36:28
1年前
0843デフォルトの名無しさん2008/12/24(水) 17:36:19
Cへのembedding ができるのはgoshだけ?
0844デフォルトの名無しさん2008/12/24(水) 18:15:43
やればみんなできるんじゃないか?
あとgoshはREPLを起動するプログラムの名前なので、その文脈ではGaucheと
呼ぶのが正しい。
0845デフォルトの名無しさん2008/12/24(水) 18:20:41
正しい綴りではないけど発音は同じになってる。
0846デフォルトの名無しさん2008/12/24(水) 18:27:47
ガウチェ(・∀・)
0847デフォルトの名無しさん2008/12/24(水) 19:45:12
>>843
何でGaucheだけだと思ったのかは知らないけど、
PLTとかも普通にできるよ。ドキュメントにやり方がきちんと載ってる。
0848デフォルトの名無しさん2008/12/24(水) 19:49:29
gosh ごっしゅ
Gauche ごーしゅ
って言い分けない?
0849デフォルトの名無しさん2008/12/24(水) 19:51:42
goshだと「ガシュ」って読めると思うけど
0850デフォルトの名無しさん2008/12/24(水) 20:10:06
Oh My Gosh!
0851デフォルトの名無しさん2008/12/24(水) 21:39:23
怖い怖い怖い。
0852サンタクロージャ2008/12/25(木) 03:04:24
みなさんの大好きなアレおいておきますね。


つ()
0853デフォルトの名無しさん2008/12/25(木) 04:06:24
gosh    [ga∫]
Gauche [gou∫]
0854デフォルトの名無しさん2008/12/25(木) 15:21:44
>>852
名前でワラタ
0855デフォルトの名無しさん2008/12/26(金) 02:44:06
なんでもoutline-modeのコード折畳みがlispにも欲しいと思った
0856デフォルトの名無しさん2008/12/26(金) 15:37:09
common lisp関係のパッケージのバージョン管理がgitになっていた
svnはもう古いのだろうか
0857デフォルトの名無しさん2008/12/26(金) 18:43:18
Gaucheでメタプログラミング第2回が10日近く前に出てましたね
0858デフォルトの名無しさん2008/12/27(土) 03:17:17
もういいだろ、やめとけよ。
0859デフォルトの名無しさん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 "横書き"); 横書きの時

)
0860デフォルトの名無しさん2008/12/28(日) 12:41:29
つ begin
08618592008/12/28(日) 12:49:19
ありがとうございます!
ifの分岐の中にbeginをいれてやってみます
0862デフォルトの名無しさん2008/12/28(日) 13:11:30
sage進行でヨロ
http://codepad.org/XnqRbNSY
0863デフォルトの名無しさん2008/12/28(日) 13:47:19
http://codepad.org/b4R6Dk3g
0864デフォルトの名無しさん2008/12/28(日) 14:15:54
コードパッドに貼るのは良いけど、アンカーと一行説明くらい書いてくれ。
0865デフォルトの名無しさん2008/12/28(日) 14:31:02
> (printf (regexp-replace* "(.)" "hello" "\\1\n"))
h
e
l
l
o
0866デフォルトの名無しさん2008/12/28(日) 18:10:45
condを使えばbeginはいらない
http://codepad.org/cGV6ISco
08678592008/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 とでてしまいます
たぶん型が違うんだなというところまでは分かったのですが
その先どうしたらよいかわかりません
よろしくお願いします。
0868デフォルトの名無しさん2008/12/28(日) 21:57:13
そのwはどこで手に入れたの?
wって本当に数値なの?
実はリストだったりしないの?
0869デフォルトの名無しさん2008/12/28(日) 21:58:20
そのwはどこで手に入れたのw
wって本当に数値なのw
実はリストだったりしないのw
08708592008/12/28(日) 22:03:26
wのほうはソフトの方言?解説書によればint32で
GIMPで開いている画像の幅で
実際に入力されている値(400)もきちんと出ています。
0871デフォルトの名無しさん2008/12/28(日) 22:06:51
括弧で括られてないか?
0872デフォルトの名無しさん2008/12/28(日) 22:11:42
マクロの練習がてら
then/else式がそれぞれシンボルthen/elseに連なるリストの時は
そのcdrをbeginで囲った式として働き、
それ以外はif式と同じように働くマクロif*を書いてみては?
(if* boolean
 (then (foo) (bar))
  (else (hoge) (funi)))
みたいな
08738592008/12/28(日) 22:40:47
うわあああwの値は括弧でくくられてた!!!
試しに普通の計算式(-12 5)をやってみたら
括弧のない7が表示されました。

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

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

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

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

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

でschemeでもclでも動くプログラムは書けるのだろうか
0910デフォルトの名無しさん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日結婚式・・・・
0911デフォルトの名無しさん2009/01/04(日) 14:20:32
r5rsで list の中に一つでも真があれば真を返す関数と
一つでも偽があれば偽を返す関数はありますか?

必ずあるとは思うのですが、
どんなキーワードで探せば良いか思いつきませんでした…。
0912デフォルトの名無しさん2009/01/04(日) 14:35:30
orとandじゃ駄目なんかね?
0913デフォルトの名無しさん2009/01/04(日) 15:03:49
>>911-912
あれは関数じゃない。
r5rs には無い。
けど、srfiでは定義されてる。
any と every
0914デフォルトの名無しさん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 は使えない環境でしたので
こうする事にしました。
0915デフォルトの名無しさん2009/01/04(日) 15:24:41
そうだね、applyすればできるような、と思ったわけだが、やってみたら
orとかandは関数じゃないのでダメ(shortcut semantics のためには関数にできない)だた。
0916デフォルトの名無しさん2009/01/04(日) 15:25:32
...延々マクロで悩んでいたw
0917デフォルトの名無しさん2009/01/04(日) 22:13:35
おいおいevalは最後の武器だろ
0918デフォルトの名無しさん2009/01/04(日) 22:22:37
自前でanyとeveryを定義しとくって選択肢は残されてないのか。
0919デフォルトの名無しさん2009/01/04(日) 22:34:16
何故スペシャルフォームでは駄目なのか……
0920デフォルトの名無しさん2009/01/04(日) 23:25:00
要はその場でループ回せばいいと思うんだけど
ループを細かく何種類も分類して名前をつけて再利用
でも、名前のない関数をたくさん使う
おもしろいね
0921デフォルトの名無しさん2009/01/05(月) 08:18:34
>>919
変数に真偽値のリストが入ってるとか
0922デフォルトの名無しさん2009/01/05(月) 14:03:37
>>914
そういう動作でいいんなら
(memq #t list)
(not (memq #f lis))
じゃいけないのん?
0923デフォルトの名無しさん2009/01/05(月) 14:10:18
>ループを細かく何種類も分類して名前をつけて再利用

ポイントフリースタイルですね、わかりました
0924デフォルトの名無しさん2009/01/05(月) 21:46:39
John W. Backusキター!
0925デフォルトの名無しさん2009/01/06(火) 01:03:48
■問
関数fのaからbまでの積分値を計算する手続きを定義せよ。
引数にf,a,bとnをとり、Simpson公式を使うこと。(nは公式で使用する分割数で偶整数)
0926デフォルトの名無しさん2009/01/06(火) 01:23:31
>>925
それがどうしたんだ?
0927デフォルトの名無しさん2009/01/06(火) 01:36:30
宿題の丸投げか
0928デフォルトの名無しさん2009/01/06(火) 02:30:56
教えて君はHead first Scheme読めば?英語だけど。
0929デフォルトの名無しさん2009/01/06(火) 10:51:21
>>925
積分ぐらい紙とペンでやれよ
0930デフォルトの名無しさん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入門だった
0931デフォルトの名無しさん2009/01/06(火) 13:02:20
(* (/ h 3) (+ f0 (* 2 sige) (* 4 sigo) fn))ね…orz
0932デフォルトの名無しさん2009/01/06(火) 13:19:47
>>930
> 俺の学校は林晴比古の新C入門だった

...説教してやるから先生連れてこい、とか言いたくなった
0933デフォルトの名無しさん2009/01/06(火) 13:25:25
>>930
925じゃないが,やっぱSchemeすごいな.
(define testfunc (lambda (x) (* x x)))
(simpson testfunc 0 1 100)
で「1/3」と出るんだね.C/Fortranばっかやってたから新鮮だわ.
0934デフォルトの名無しさん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
0935デフォルトの名無しさん2009/01/06(火) 22:20:18
はひー 
新年早々 積分で盛り上がるこのスレって 奇跡で出来てるんですね〜
0936デフォルトの名無しさん2009/01/06(火) 23:56:04
はい、そこ
恥ずかしいS式禁止
0937デフォルトの名無しさん2009/01/06(火) 23:59:50
微分: 微かに分る
積分: 分った積もり
0938デフォルトの名無しさん2009/01/07(水) 00:07:42
今年の抱負
Seasoned Schemerの残り(15〜最後)を読む!
SICP読む!
ものまね鳥読む!
GEBよむ!
わだばSchemerになる!わだばSchemerになる!
わだばSchemerになる!わだばSchemerになる!
わだばSchemerになる!わだばSchemerになる!
0939デフォルトの名無しさん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

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


マジレスするならちゃんとしたエディタ使えばインデントでわかるっしょ
慣れてしまえば括弧なんて空気みたいなもんだよ
0945デフォルトの名無しさん2009/01/07(水) 03:35:23
インデントがあれば括弧は要らない……なんて言っちゃいけないんだろうな
0946デフォルトの名無しさん2009/01/07(水) 03:54:43
つ SRFI-49
0947デフォルトの名無しさん2009/01/07(水) 03:59:58
>>943
こんなの見つけた
ttp://faroffsea.blogspot.com/2008/04/common-lisp.html
0948デフォルトの名無しさん2009/01/07(水) 04:05:25
>>943
はい。
http://lispuser.net/memo/lisp/2006-04-26-03-02.html
0949163.221.196.250 2009/01/07(水) 04:20:16
>>947
>>948

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

http://codepad.org/qJcs4es4
http://codepad.org/96FTq50M
0958デフォルトの名無しさん2009/01/10(土) 22:28:53
on lispの日本語翻訳みれなくなってない?
0959デフォルトの名無しさん2009/01/10(土) 22:41:28
あ、ほんとだ見れないや
0960デフォルトの名無しさん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)
0961デフォルトの名無しさん2009/01/11(日) 18:12:09
Gaucheではsyntax-rulesマクロを生成するsyntax-rulesマクロは正常に働きません
09629602009/01/11(日) 18:32:56
>>961
了解。
ありがとう。
09639612009/01/11(日) 18:34:14
とはいうものの
> 外側syntax-rulesでキャプチャした_argsの中のx:が
> 内側syntax-rulesのキーワードx:と別扱いされているのかも。
なら(test-let x: 1)のほうがうまくいかないはず。
(test-let y 1)がどうして(_test x: . _args2) にマッチするんだろう?
???
0964デフォルトの名無しさん2009/01/11(日) 23:44:52
純粋さよりシンプルさを重視する傾向にあるRnRS-Schemeで
どうしてsyntax-rulesやsyntax-caseみたいな複雑なマクロが採用されているのかわかりませんね
09659642009/01/11(日) 23:53:51
syntax-rulesやsyntax-caseを否定/批判しているわけではありませんので、悪しからず
0966デフォルトの名無しさん2009/01/12(月) 00:17:44
いや、もっともな意見だね
define-macroでいいもの
追求してオナニーするための道具でしかない
0967デフォルトの名無しさん2009/01/12(月) 00:44:12
シンプルさ重視ならレガシーマクロもいらないんじゃないの
eval-whenとかけっこう複雑だし
javascriptかluaを使えばいいと思うよ
0968デフォルトの名無しさん2009/01/12(月) 01:53:51
個人的な意見だけど、ハイジーニックなマクロは
define-macroに付き物の 「実行時・コンパイル時」とかそういう「泥臭い」概念を
排除して、純粋に「アルゴリズミックランゲージ」を追求しようとしたんじゃない
かなーと思う。
あと、コンパイル時にLispコードが走るってのは理論面でちょっと扱いづらい
ような気もするので、それもあるかも。

まぁ良し悪しは別ね。

俺はdefine-macroの方が好き。
0969デフォルトの名無しさん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
0970デフォルトの名無しさん2009/01/12(月) 10:34:25
> 968
syntax-rulesまではよかった、までは・・・
0971デフォルトの名無しさん2009/01/12(月) 20:20:15
そのよさを説明できないのが問題なんだな
逆に、syntax-caseのほうが強力だと説明するのは簡単だけど
0972デフォルトの名無しさん2009/01/13(火) 01:00:06
>>968
>あと、コンパイル時にLispコードが走るってのは理論面でちょっと扱いづらい
ような気もするので、それもあるかも。

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

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

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

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

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

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

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

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

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

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

LispでEmacsのようなプログラムが作れるわけですが
参照透明でお上品でお綺麗なEmacsなんて想像もつかない
キーを一文字打鍵するだけで全部コピーするのは流石にナシでしょうし
モナドだらけになるのでしょうか?
0992デフォルトの名無しさん2009/01/13(火) 16:23:23
>>989
I/Oもなの?
Lisp/Schemeが、I/Oに対して行なったストリーム抽象の貢献は、
先行があったとはいえ、独自のものがあったと思うけれど…
0993デフォルトの名無しさん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]
0994デフォルトの名無しさん2009/01/13(火) 16:33:38
>>992
えーと、自分の「汚い」という意味は、「悪い」というのとは違います
I/Oなしで意味のあるプログラムを書くのは不可能ですし……

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

0995デフォルトの名無しさん2009/01/13(火) 16:36:42
>>993
defineは式ではないので本体部の先頭かトップレベルでしか規格で許されていないから
09969932009/01/13(火) 17:54:15
>>995 さん
ありがとうございます。
調べたら確かにそうかいてありました。
0997デフォルトの名無しさん2009/01/13(火) 18:18:13
きれいな言語仕様してるだろ
ウソみたいだろ
死んでるんだぜ。それで…
たいしたキズもないのに、ただ、ちょっとタイプどころが悪かっただけで…
もう動かないんだぜ
な
ウソみたいだろ
0998デフォルトの名無しさん2009/01/13(火) 20:49:17
もうわけわからん。
0999デフォルトの名無しさん2009/01/13(火) 21:28:50
まだだまだ終わらんよ
1000デフォルトの名無しさん2009/01/13(火) 21:29:44
1000なら今年はLispで仕事ができる
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。