Lisp Scheme Part24
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2008/10/25(土) 21:53:25□過去スレ□
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:49CLtL2: 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:22ttp://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:17Structure 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『プログラミング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:33John 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独習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初心者が集うIRC(布教してくれる先生も大募集です)。
irc.scenecritique.com
port 6667
チャンネル #Lisp_Scheme
Schemeのテストコード書いたり、簡単な実行したりコードさらしたりするにはここへカモン。
ttp://codepad.org/
コードを書いて実行した時のURLを記録しておけば、実行結果も一緒にさらす事が出来て幸せです。
0010デフォルトの名無しさん
2008/10/25(土) 22:05:54Gauche: マルチバイト文字に対応した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:10Chez 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:31Steel 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:45awklisp: 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:01Shibuya.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(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>>16
wikiの管理人なんですけど、あそこは時々つながりにくくなる。Rubyの本拠のNACLが
運営しているフリーwikiホスティングなんだが…。Rubistを刺激したく無いけど。少し頑張っ
て欲しいと思う。移動させたいという話が出てきたならどうぞコピーしていってやってくだ
さい。と思ってます。
0018デフォルトの名無しさん
2008/10/25(土) 22:29:03これは乙じゃなくてポニーテールなんたらかんたら
0019デフォルトの名無しさん
2008/10/25(土) 23:00:020020デフォルトの名無しさん
2008/10/25(土) 23:06:10::| ____
::|. ./|=| ヽ. ≡三< ̄ ̄ ̄>
::|. / |=| o |=ヽ .≡ ̄>/
::|__〈 ___ ___l ≡三/ /
::|、ヽ|.|┌--、ヽ|/,-┐| ≡/ <___/|
::|.|''''|.\ヽ--イ.|ヽ-イ:| ≡三|______/
::|.ヾ |.::. .. ̄ ̄| ̄ /
::| ';:::::┌===┐./
::| _〉ヾ ヾ二ソ./ こ、これは>>1乙じゃなくてスラッガーなんだから
::||ロ|ロ| `---´:|____ 変な勘違いしないでよね!
::|:|ロ|ロ|_____/ロ|ロ|ロ,|`ヽ
::| |ロ|旦旦旦旦旦/ロ/ロ|旦,ヽ
::|ロヽ 旦旦旦旦旦./ロ,/|::旦旦)
::|ヾ旦旦旦旦旦旦,,,/::::|、 旦旦|
0021デフォルトの名無しさん
2008/10/25(土) 23:08:130022デフォルトの名無しさん
2008/10/25(土) 23:44:08車に例えるとレース用だろ
0023デフォルトの名無しさん
2008/10/26(日) 00:01:490024デフォルトの名無しさん
2008/10/26(日) 00:19:33(eq >>23 >>1000@前スレ) ; nil
(setf message '(1000を とった から lispは これから はやるよ))
(eq message >>1000@前スレ) ; T
0025デフォルトの名無しさん
2008/10/26(日) 00:43:22ttp://www.codeplex.com/IronScheme
0026デフォルトの名無しさん
2008/10/26(日) 03:14:06月曜ネット再開通するまでに前スレ落ちたらなぁ、
いいか?ううう恨むからな。コラ!
1乙\(^o^)/
0027デフォルトの名無しさん
2008/10/26(日) 03:18:4221世紀になって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だれかこれ日本語に翻訳してくれないか
0029デフォルトの名無しさん
2008/10/26(日) 04:28:04WiLiKiに置いとけば?
0030デフォルトの名無しさん
2008/10/26(日) 12:04:50お、管理人さんか。地道な更新乙。
0031デフォルトの名無しさん
2008/10/26(日) 12:45:420032デフォルトの名無しさん
2008/10/26(日) 13:02:46管理人は名ばかりで少しの更新はしてますが、多くの更新はlisp系スレッドの住民の
方々によるものなのです。みなさんの協力があってこそなりたっていまして、こちらこそ
協力にありがとうです。
0033デフォルトの名無しさん
2008/10/26(日) 14:35:19いや、いわんとしてることはわかると思うけどな。
Unix lile OS の次を模索してないようじゃだめでしょ、というか。
0034デフォルトの名無しさん
2008/10/26(日) 14:59:03あるのでしょうか?mach?まだよくわからない hurd ?
0035デフォルトの名無しさん
2008/10/26(日) 15:35:420036デフォルトの名無しさん
2008/10/26(日) 15:46:160037デフォルトの名無しさん
2008/10/26(日) 15:46:280038デフォルトの名無しさん
2008/10/26(日) 15:52:11lispマシンって何が弱いんだったっけ…。
0039デフォルトの名無しさん
2008/10/26(日) 15:55:010040デフォルトの名無しさん
2008/10/26(日) 16:41:53既存のOSの発想では不可能でしょ、JK。
mach や hurd もその点では同じ。Solarisも大したことないし。
どのOSでも大した違いが無いということは、裏を返せば共通する不満点があるんだってことだ。
それを提示できるのはCSの人間だって?それはどうかな。
0041デフォルトの名無しさん
2008/10/26(日) 16:43:14んー、魅力的。ICOT ってlispでしたっけ?prolog?
0042デフォルトの名無しさん
2008/10/26(日) 16:43:44Dr.は、もっと根本的な変化を望んでるんじゃないの?
0043デフォルトの名無しさん
2008/10/26(日) 16:52:51たしかに奇想天外なアイディアがほしいところですね。やっぱりICOT?
0044デフォルトの名無しさん
2008/10/26(日) 17:12:21成果が産業に影響を与えることはなく、学術振興と人材育成に寄与しただけだった。その結果がDr.・・・
応用の進展を阻んでいるのはソフトウェアが存在しないからであって、強力な推論マシンがないからではない。
ソフトウェアが既にたくさんあって、強力な推論エンジンの出現を待ちわびていると思うのは間違いだ。
もし、応用分野があればLispなら素早く書き安いだろうが、応用分野を指摘できていない点で内容が無い文章だ。
0045デフォルトの名無しさん
2008/10/26(日) 17:14:19んで、君なら応用分野を指摘できるの?
できないんならDrを批判する立場にないね。
0046デフォルトの名無しさん
2008/10/26(日) 17:17:32オマエモナー
0047デフォルトの名無しさん
2008/10/26(日) 17:19:04004841,43
2008/10/26(日) 17:20:420049デフォルトの名無しさん
2008/10/26(日) 17:33:40http://www.google.com/language_tools?sourceid=navclient&hl=ja
例としてgoogle翻訳を試してみると分かると思うよ。
文法的に似てる言語間ではうまく翻訳できる。例えば、ロマン語(イタリア・フランス・スペイン)。
日本語の場合、韓国語はOKだけど、中国語は駄目。英語も駄目だね。
特にユーザー数が少ない言語は登録語彙数が少なくてうまく訳せない。
こういうアプリケーションはオープンソースで辞書を共有すると発展しそう。
推論エンジンはあまり関係なくなってるかな。障害は主に文法的な例外だから。
0050デフォルトの名無しさん
2008/10/26(日) 18:09:30http://sourceforge.net/projects/gpltrans/
0051デフォルトの名無しさん
2008/10/26(日) 18:57:55分詞構文とか仮定法(接続法)はまったくだめですね。
005251
2008/10/26(日) 19:00:59とあるサイトの経験では韓国語は割りといいみたいです。日->韓->日で違和感がないですから。(というか違和感が発生しないように元の日本語をかいています。
でも、英語<->日本語が実用になるのはいつの話か。
これを大掛かりなシステムでがんばろう、という団体は現れるのでしょうか。
0053デフォルトの名無しさん
2008/10/26(日) 19:02:410054デフォルトの名無しさん
2008/10/26(日) 19:17:52英語<->日本語が実用になるには文法のルールをしっかり見つけて登録するしかない。
文法の推論エンジンに問題があるわけじゃない。
ビジネス的には英中のプライオリティが高いから日本語は後回しだと思う。
現実問題として、食品・医薬品分野の品質保証で英中自動翻訳は急務。
世界中から引き合いが在る。
0055デフォルトの名無しさん
2008/10/26(日) 19:38:02http://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:30body ...は0個以上の式にマッチする
規格上式を本体に1個以上持つ事が要求されているので前者で記述されている
ちなみに...も1つの識別子だからbody1 body2 ...は3要素になります
0057デフォルトの名無しさん
2008/10/26(日) 21:09:38ばっちり理解できました。
ありがとうございます。
0058デフォルトの名無しさん
2008/10/26(日) 21:47:37エンコリの右上にある翻訳機に
「또한 일본에서 여러 가지 포르노 문화를 꽃피워 있다. 」
をコピペして翻訳させたらちゃんと訳してくれてワロタ
さすがはキーセンの国
0059デフォルトの名無しさん
2008/10/26(日) 22:31:010060デフォルトの名無しさん
2008/10/26(日) 22:46:530061デフォルトの名無しさん
2008/10/26(日) 22:56:280062デフォルトの名無しさん
2008/10/26(日) 22:57:210063デフォルトの名無しさん
2008/10/26(日) 23:01:310064デフォルトの名無しさん
2008/10/26(日) 23:03:36atr
0065デフォルトの名無しさん
2008/10/26(日) 23:03:380066デフォルトの名無しさん
2008/10/26(日) 23:06:560067デフォルトの名無しさん
2008/10/26(日) 23:09:430068デフォルトの名無しさん
2008/10/26(日) 23:14:120069デフォルトの名無しさん
2008/10/26(日) 23:17:490070デフォルトの名無しさん
2008/10/26(日) 23:27:36เกณฑ์มาตรฐานการศึกษาต่ำ
0071デフォルトの名無しさん
2008/10/26(日) 23:29:590072デフォルトの名無しさん
2008/10/26(日) 23:30:530073デフォルトの名無しさん
2008/10/26(日) 23:31:450074デフォルトの名無しさん
2008/10/26(日) 23:32:260075デフォルトの名無しさん
2008/10/26(日) 23:35:170076デフォルトの名無しさん
2008/10/26(日) 23:40:450077デフォルトの名無しさん
2008/10/26(日) 23:50:120078デフォルトの名無しさん
2008/10/27(月) 00:09:250079デフォルトの名無しさん
2008/10/27(月) 00:17:140080デフォルトの名無しさん
2008/10/27(月) 00:22:24008165
2008/10/27(月) 00:22:290082デフォルトの名無しさん
2008/10/27(月) 00:25:140083デフォルトの名無しさん
2008/10/27(月) 00:33:010084デフォルトの名無しさん
2008/10/27(月) 00:46:49いつも乙です。前スレが急に埋めたてられてしまったので、急いでテンプレ改訂して
新スレ立てようとしたら、そんなときに限って繋がらなかったので少々焦りました。
>>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:410086デフォルトの名無しさん
2008/10/27(月) 01:13:04(テンプレ? 苫米地)
=>#f
0087デフォルトの名無しさん
2008/10/27(月) 02:12:31その他のLisp実装に
newlispを加えるのはどうでしょう?
ttp://www.newlisp.org/
0088デフォルトの名無しさん
2008/10/27(月) 04:47:37ttp://www.nicovideo.jp/tag/shibuya.lisp
>>87
やっておきましたが、せっかくのWikiなので、いちいち断わらずとも
適当に編集しちゃっていいと思いますよ。
0089デフォルトの名無しさん
2008/10/27(月) 09:48:40http://www.nicovideo.jp/watch/sm4905951
0090デフォルトの名無しさん
2008/10/27(月) 09:59:36信者かアンチか知らんが
0091デフォルトの名無しさん
2008/10/27(月) 11:53:480092デフォルトの名無しさん
2008/10/27(月) 18:56:320093デフォルトの名無しさん
2008/10/27(月) 19:04:010094デフォルトの名無しさん
2008/10/27(月) 19:16:450095デフォルトの名無しさん
2008/10/27(月) 19:57:040096デフォルトの名無しさん
2008/10/27(月) 21:19:500097デフォルトの名無しさん
2008/10/27(月) 22:35:48入出力の処理を自分でやるときは手続き型のほうが自然に感じる。
0098デフォルトの名無しさん
2008/10/27(月) 22:38:03笑った
0099デフォルトの名無しさん
2008/10/28(火) 10:09:30ということは日本語のlispは縦書きですね
0100デフォルトの名無しさん
2008/10/28(火) 10:37:190101デフォルトの名無しさん
2008/10/28(火) 11:33:31縦書きでプログラミングに使用できるエディタは存在する。
半角だけ横にすることも出来る。
0102デフォルトの名無しさん
2008/10/28(火) 12:07:20カッコやインデントに対応してくれw
0103デフォルトの名無しさん
2008/10/28(火) 13:07:270104デフォルトの名無しさん
2008/10/28(火) 16:09:51他に縦書きが出来てさらに他の利点もあるものをあげてくれよ。
emacsは縦書き出来ないし、なんかあるの?
0105デフォルトの名無しさん
2008/10/28(火) 17:03:020106デフォルトの名無しさん
2008/10/28(火) 17:54:140107デフォルトの名無しさん
2008/10/28(火) 18:52:04他の利点の無いエディタも死んでいる。
死んで次に続かないものには意味を見い出せない。
あれは駄目、これは駄目と否定するだけの人間も死んでいる。
今、CSに必要なのは生きている人間だ。
0108デフォルトの名無しさん
2008/10/28(火) 20:02:120109デフォルトの名無しさん
2008/10/28(火) 20:04:330110デフォルトの名無しさん
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
0111110
2008/10/28(火) 20:11:040112デフォルトの名無しさん
2008/10/28(火) 20:33:500113デフォルトの名無しさん
2008/10/28(火) 20:44:29lispを勉強しようと思ってゲームでも作れたらいい目標になるなって思ってたんですけど
lispではそういうゲームエンジン的なものは無料で配布されてたりしないんですか?
0114デフォルトの名無しさん
2008/10/28(火) 21:34:04マザーの開発に Lisp が使われたりはしたみたいだな。
0115デフォルトの名無しさん
2008/10/28(火) 21:34:26作品名言えないけどプレステで使いました
0116デフォルトの名無しさん
2008/10/28(火) 21:58:570117デフォルトの名無しさん
2008/10/28(火) 22:06:41サターンのゲームで使ったお
0118デフォルトの名無しさん
2008/10/28(火) 22:09:28ゲームじゃないけどAutoCADもLispでしょ?
0119デフォルトの名無しさん
2008/10/28(火) 22:26:46ということは・・・
CGシステムの標準スクリプトはLispになる!?
ああ、シンボリクスの夢よ再び(笑
0120デフォルトの名無しさん
2008/10/28(火) 23:29:34マジレスするとそれはない。
C++か.NET
0121デフォルトの名無しさん
2008/10/28(火) 23:34:18いくらなんでもC++は無いだろう
.NETはスクリプトには関係ないし
0122デフォルトの名無しさん
2008/10/28(火) 23:37:58http://www.codeplex.com/IronScheme
0123デフォルトの名無しさん
2008/10/29(水) 00:05:49AutoLispってとっくにやめて、VBA組み込んでるんじゃなかったっけ?
>>120
さすがにC++じゃ機能拡張用プラグインでも作るのかって勢いだろ。
CAD/CG作成者にLisp覚えてくださいっていうよりきついわ〜
0124デフォルトの名無しさん
2008/10/29(水) 00:08:31> ゲームじゃないけどAutoCADもLispでしょ?
なんかlisperの人たちでAutoLisp使ったことが無い人が多いみたいなので
言っておくけど、AutoLispは相当古い仕様だぞ。
letすらない。activexは制御できるが。
今は VBA 使えるからそっちで作った方がマシかと。
0125デフォルトの名無しさん
2008/10/29(水) 00:08:46なんでわざわざSchemeで.Net使う必要があるんだ。
0126デフォルトの名無しさん
2008/10/29(水) 00:29:26て人向け。
0127デフォルトの名無しさん
2008/10/29(水) 00:39:130128デフォルトの名無しさん
2008/10/29(水) 00:42:15Schemeの利点を無視している。
0129デフォルトの名無しさん
2008/10/29(水) 00:43:340130デフォルトの名無しさん
2008/10/29(水) 00:46:470131デフォルトの名無しさん
2008/10/29(水) 03:39:53それは生きる喜びに直結するのでLispには価値がある
0132デフォルトの名無しさん
2008/10/29(水) 04:52:16AngbandをCLで書き直したLangbandっていうのがあるみたい。
0133デフォルトの名無しさん
2008/10/29(水) 08:15:27もしかしてEmacsもEmacsScriptを搭載してアイコンも牛ではなくなってしまう日は来るのか?・・・
0134デフォルトの名無しさん
2008/10/29(水) 09:03:540135デフォルトの名無しさん
2008/10/29(水) 10:58:490136デフォルトの名無しさん
2008/10/29(水) 14:43:030137デフォルトの名無しさん
2008/10/29(水) 14:45:530138デフォルトの名無しさん
2008/10/29(水) 15:53:360139デフォルトの名無しさん
2008/10/29(水) 22:01:080140デフォルトの名無しさん
2008/10/29(水) 22:54:32http://c.2ch.net/test/-/news/1225285184/
0141デフォルトの名無しさん
2008/10/30(木) 18:22:55強制ID実装を駄目元で頼み込んでみた。
もし賛同してくれる人がいたら同意のレスつけてください。
0142デフォルトの名無しさん
2008/10/30(木) 21:28:560143デフォルトの名無しさん
2008/10/30(木) 21:39:030144デフォルトの名無しさん
2008/10/31(金) 03:48:25荒れてる原因は最近住み着いた奴なのも明白だし。
もしかしたら>>141じゃないかという気がしている。
0145デフォルトの名無しさん
2008/10/31(金) 05:08:32馴れ合い系の板ならそれでも良いかもしれないけど、ここはそうじゃないからね。
0146デフォルトの名無しさん
2008/10/31(金) 06:05:19そこは実効性の無いガス抜き用のスレでしょ。
いたずらに議論を煽るのは感心しないな。
0147デフォルトの名無しさん
2008/10/31(金) 09:10:530148デフォルトの名無しさん
2008/10/31(金) 10:21:380149デフォルトの名無しさん
2008/10/31(金) 14:24:48こんな過疎スレじゃ役に立たない気がする
0150デフォルトの名無しさん
2008/10/31(金) 15:48:32だれも書き込んでないけどw
0151デフォルトの名無しさん
2008/10/31(金) 23:11:530152デフォルトの名無しさん
2008/11/01(土) 06:33:32Visual 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:340154デフォルトの名無しさん
2008/11/01(土) 16:28:550155デフォルトの名無しさん
2008/11/01(土) 17:08:53=> R
(cdr 'R6RS)
=> R5RS
0156デフォルトの名無しさん
2008/11/02(日) 01:39:14上位互換ということですね?
0157デフォルトの名無しさん
2008/11/02(日) 01:56:190158デフォルトの名無しさん
2008/11/02(日) 02:46:39以前のあなたはそんな風じゃなかった…
0159デフォルトの名無しさん
2008/11/02(日) 08:24:42全部R6RSが悪いのよ!
0160デフォルトの名無しさん
2008/11/02(日) 08:49:540161デフォルトの名無しさん
2008/11/02(日) 12:04:07いや、R5RSのバグが悪い。
0162デフォルトの名無しさん
2008/11/03(月) 01:26:25Gauche on Rails作ってる人だよね。
頑張ってるなー。
0163デフォルトの名無しさん
2008/11/06(木) 20:47:01Rubyユーザが流れてきたりすると嬉しい。
0164デフォルトの名無しさん
2008/11/06(木) 23:50:08schemeの人って排他的な集団かと思ってたけどそうじゃないのか
0165デフォルトの名無しさん
2008/11/07(金) 00:17:16以降禁止といこうか
0166デフォルトの名無しさん
2008/11/07(金) 01:05:26お前らの時代が少しだけ近づいた
0167デフォルトの名無しさん
2008/11/07(金) 13:30:08高度な人工知能を構築して国産OSをつくろう。
σプロジェクトの始まりだ。
0168デフォルトの名無しさん
2008/11/07(金) 13:39:320169デフォルトの名無しさん
2008/11/07(金) 13:42:170170デフォルトの名無しさん
2008/11/07(金) 14:08:51教科書通りに打っているのですが出力が本と異なります。
(lambda (a b c d) (* (+ a b)(+ c d)) 2 3 4 5)
で49がでるはずですが
#<procedure>
が代わりに出ます。どうしてでしょうか。教えて頂けると助かります。
0171デフォルトの名無しさん
2008/11/07(金) 14:10:45解決しました。( ) が足りてませんでした。
0172デフォルトの名無しさん
2008/11/07(金) 14:17:39球技のボール拾いと同じだよ
がんばりたまえ
0173デフォルトの名無しさん
2008/11/07(金) 15:51:09http://common-lisp.net/project/cl-weblocks/
0174デフォルトの名無しさん
2008/11/07(金) 16:31:56p.31の最後の例 (call/cc procedure?) => #t の意味がわかりません.
最初は (procedure? call/cc) のtypoかと思いましたがどうやら上のS式で正しいようです.
call/ccの引数には「1個の引数をとるclosure」しか来ないと思い込んでいました.
procedure?のかわりにlist?などの1引数の手続きを与えてもエラーになります.
どのように解釈すればよいのでしょうか.よろしくお願いします.
0175デフォルトの名無しさん
2008/11/07(金) 16:44:10(call/cc list?) ってエラーになる?
0176174
2008/11/07(金) 16:50:52おっと失礼.別のエラーと混同してました.エラーにならないようです.
(call/cc list?) (call/cc string?) (call/cc vector?)などは #f を返しますね
0177デフォルトの名無しさん
2008/11/07(金) 16:58:21call/ccはそのclosureに現在の継続を第一引数として渡し呼び出す。
継続は「手続き」なので#tが返る。
まっとうな処理系ならlist?でも#fが返るだけでエラーにはならないはず。
0178174
2008/11/07(金) 17:20:05>procedure?は評価されるとclosure。
不勉強で申し訳ないのですがこの意味がわかりません.
procedure?についての記述はR5RSの3.2章と6.4章にしかないのですが,どちらにも見当たりません
0179デフォルトの名無しさん
2008/11/07(金) 17:43:24(call/cc procedure?) ;=> #t
procedure?は(lambda (cc) (procedure? cc))と「同じ」
0180デフォルトの名無しさん
2008/11/07(金) 17:57:13初心者への説明としては適切じゃないな。
closureを含めて手続きと呼ぶし、
procedure?はprimitiveかもしれない。
どちらにしろ(procedure? procedure?)は#tを返す。
そもそも「手続き」という訳し方が気に入らない。
関数じゃダメなん?
0181デフォルトの名無しさん
2008/11/07(金) 18:03:54手続き - procedure
クロージャ - closure
1対1対応をつけて、規格の用語法に従ったほうが最終的に間違う可能性が
少なくて済む。
0182デフォルトの名無しさん
2008/11/07(金) 18:11:18r5rsにprocedureと書かれているものを「関数」と訳すことはオラにはできね。
0183デフォルトの名無しさん
2008/11/07(金) 18:18:28closureという単語は使わなかった方が良かったかも。
r5rsでは手続き(procedure)と呼んでいるのでこちらを使おう。
procedure?という変数には「与えられた引数が『手続き』であることを調べる手続き」が
束縛されている。
変数procedure?が評価されると評価結果は「手続き」となる。
(lambda () (...))という式も評価されると評価結果は「手続き」となる。
0184デフォルトの名無しさん
2008/11/07(金) 21:31:31その対となる物はコンビネータですか?
0185デフォルトの名無しさん
2008/11/07(金) 22:14:10> procedure?という変数には「与えられた引数が『手続き』であることを調べる手続き」が
> 束縛されている。
procedure?という変数は「与えられた引数が『手続き』であることを調べる手続き」によって束縛されている。
あげあし取りスマヌ
0186デフォルトの名無しさん
2008/11/07(金) 23:09:02まあ実際そうだけどさ。こんな事言っても最近の奴には判らんかな。
>>181
クロージャは閉包
0187デフォルトの名無しさん
2008/11/07(金) 23:14:16あげあし取りスマヌ
0188デフォルトの名無しさん
2008/11/07(金) 23:17:17もしかして「自由変数を一切持たないクロージャがあったならば、それをコンビネータと呼んじゃってもいいのか?」っていう質問なのかな?
0189デフォルトの名無しさん
2008/11/07(金) 23:26:41副作用という言葉の定義が気持ち悪いな
引数が同じとき戻り値が同じかどうか?
「同じ」の定義は?
0190デフォルトの名無しさん
2008/11/07(金) 23:38:250191デフォルトの名無しさん
2008/11/07(金) 23:45:230192デフォルトの名無しさん
2008/11/08(土) 03:50:480193デフォルトの名無しさん
2008/11/08(土) 08:18:080194デフォルトの名無しさん
2008/11/08(土) 08:29:341ぞっとするほど恐ろしい。非常に気味が悪い。「―い目でにらむ」
2びっくりするほど程度がはなはだしい。大層なものだ。「―い人気」
3(連用形を副詞的に用いて)程度のはなはだしいことを表す。「―く寒い」「―くおもしろい」
0195デフォルトの名無しさん
2008/11/08(土) 08:42:54すごい。MOPS値とかなー
問題はインテルプロセッサの高速化と廉価化が非常識だったことであってw
0196デフォルトの名無しさん
2008/11/08(土) 09:02:13OSがやるようなリソース管理をPrologの世界に持ち込んで、
メタ管理できるようにする奴。
www.tulips.tsukuba.ac.jp/pub/dl/e_thesis/ko/sato2003.pdf
ELIS/TAO以来、Lisp界はこういうのないね。
地味な基礎研究だけど面白いのに。
0197デフォルトの名無しさん
2008/11/08(土) 12:54:52なんで?
0198デフォルトの名無しさん
2008/11/08(土) 12:57:13それが問題だ
0199デフォルトの名無しさん
2008/11/08(土) 17:31:39LispWorks
が期間限定でディスカウントしていますが誰か買った人いますか?
自分のお小遣いでギリギリ買える値段になってたので申し込んでみました。
http://www.lispworks.com/buy/50-50-special-offer.html
0200デフォルトの名無しさん
2008/11/08(土) 19:12:170201デフォルトの名無しさん
2008/11/08(土) 21:04:10ご本人に聞けば。そういう伝聞話は。
0202184
2008/11/08(土) 21:45:28自由変数を持たない関数をクロージャと呼んでいいのか?くらいの質問です
実装によっては環境を閉じ込めてるからそれもアリなのかもしれませんが
自由変数の参照が無い関数はもはやコンビネータなのでは、と思った次第です
0203デフォルトの名無しさん
2008/11/08(土) 22:18:210204デフォルトの名無しさん
2008/11/08(土) 22:27:01虚部が0でも複素数と呼んでいいのか?
よさそうだな。
0205デフォルトの名無しさん
2008/11/08(土) 22:55:44数値を実数の世界で見るか、複素数の世界で見るかでその答えは決まります。
0206デフォルトの名無しさん
2008/11/08(土) 22:56:010207デフォルトの名無しさん
2008/11/08(土) 22:57:34R⊂C
0208デフォルトの名無しさん
2008/11/08(土) 23:05:08はい。
0209デフォルトの名無しさん
2008/11/08(土) 23:15:060210デフォルトの名無しさん
2008/11/09(日) 01:12:350211デフォルトの名無しさん
2008/11/09(日) 06:13:23R:Who knows, but it works very hard.
0212デフォルトの名無しさん
2008/11/09(日) 11:28:08基礎研究であっても、現実的成果がないと廃れちゃうんだよ。
今やるべきことは、応用を考えることだよ。
Coqで定理証明〜なんてやっていても仕方が無い。
0213デフォルトの名無しさん
2008/11/09(日) 12:59:210214デフォルトの名無しさん
2008/11/09(日) 13:10:36こういう風潮がある時点で学究活動なんて終わってるな。景気も悪いし、結果、結果ってわめくばかりでどうしょうもないw
0215デフォルトの名無しさん
2008/11/09(日) 13:22:100216デフォルトの名無しさん
2008/11/09(日) 13:34:540217デフォルトの名無しさん
2008/11/09(日) 14:02:06ぶっちゃけ、終わってるのはLispなんではw
Lisp界に閉じたようなことばかりで、
他に影響を与えるような新しいことが出てきてない。
0218デフォルトの名無しさん
2008/11/09(日) 14:14:47他言語の設計者達が勝手に受けまくってるよ。今でも。
0219デフォルトの名無しさん
2008/11/09(日) 14:18:31closure(閉包)が〜、と言っている以上、活動はその世界で
閉じてないといけないからな。
0220デフォルトの名無しさん
2008/11/09(日) 14:18:42今は新しいことが出てきてない。
0221デフォルトの名無しさん
2008/11/09(日) 14:20:23だから、相対的にどんどん価値が下がってるんだって。
0222デフォルトの名無しさん
2008/11/09(日) 14:23:50多い普通の言語に成り下がるんだよ?
0223デフォルトの名無しさん
2008/11/09(日) 14:26:28LIsp のマクロに対抗できるだけの単純でかつ強力なマクロを持つ言語を
私は知りませんが?
そこでもしかしてC++とか言っちゃうひと?
0224デフォルトの名無しさん
2008/11/09(日) 14:34:370225デフォルトの名無しさん
2008/11/09(日) 14:34:51今現在じゃなくてこれからの話だよ。
それに、そういう強力なマクロ機能を他言語でも実現させてみよう、
と他言語の設計者はがんばれる。けど、Lispは今は何もできてない。
その時点で負けてると思うよ。
当たり前の話だが、いつか食い尽くされる。
それに、廃れているだけで、機構自体はあるかもしれないよ。
0226デフォルトの名無しさん
2008/11/09(日) 14:54:36がんばってもがんばっても追いつけないものに対して、
がんばれるほうがすぐれている、と判断するんですね。
面白い評価のしかたです。
0227デフォルトの名無しさん
2008/11/09(日) 15:00:140228デフォルトの名無しさん
2008/11/09(日) 15:00:25Lispの一番「強い」ところがその括弧と(正確にはS式と)不可分だから、
「括弧の多い普通の言語」という成り下がり方はしないだろうな。
Lispが「普通の言語」になる時(最も「強い」部分がLisp固有のものではなくなる時)は、
他の言語も括弧だらけになってる時だから、Lispを表現するのに「括弧の多い」という形容は
もはや使われていないはず。
0229デフォルトの名無しさん
2008/11/09(日) 15:03:20大概の問題は、工学的手法で解決できるものだよ。日本の得意分野じゃん。
完全な再現はできないかもしれないけれど、その過程で新たな技法が
見つかることもよくある。
最悪、達成できなくても、それなりの成果ってでるよ。
何もしなかったら何もでないけど。
0230デフォルトの名無しさん
2008/11/09(日) 15:09:53マクロよりはちょっとだけ落ちるけど、
名前呼びができる言語はLispに肉薄してると思う。
まあ、Lispが最強なことには変わりないが。
0231デフォルトの名無しさん
2008/11/09(日) 15:22:10such 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:25Algol 以外にメジャーな言語で Call by name の(ある)ものってあったっけ?
0233デフォルトの名無しさん
2008/11/09(日) 15:24:18DylanとかBooとかで試みられていたような
あと最近だと、高校生が設計したとかで話題になってたCyanとかもか
こういうアプローチに利点があるとすれば、可読性かなあ
上で出てたShibuya.lispの動画でL4uの作者が言ってたが、
S式はフラット過ぎて人間に読みづらいという感覚はアリだと思う
(もちろんフラットさこそが柔軟性を生んでいるわけだが)
0234デフォルトの名無しさん
2008/11/09(日) 15:28:24利用されるけど評価されないという式を扱えない。
名前呼び+α変換もプログラマブル、という機構はその欠点はなくせるけど
式の変形は人間が行わなければいけない。
0235デフォルトの名無しさん
2008/11/09(日) 15:38:05それを人はPythonと呼ぶ。NorvigもPython使いに転向した。
MSもGoogleもAppleもNASAもみんなPythonを使ってる。まあお前らも
はやく目覚めるといいね、と。
0236デフォルトの名無しさん
2008/11/09(日) 15:41:58それはこのスレの多くが思ってることだろう。
ユーザーのレベルを問わない武器としてLispを勧める奴は、今も昔もあんまりいないでしょ?
0237デフォルトの名無しさん
2008/11/09(日) 15:42:50良いんだか悪いんだかわからないけど・・・。
巷で言われる「Lispコードの読みにくさ」を全否定する気はもちろん無いけど、でも
閉じ括弧の束を、何の意味も無いのにわざわざ見つめて「うわっ、括弧ばっか」とか言ってる
レベルの言説も多いから(見る必要が無いから、少しでも視覚的に存在を小さくすべく纏めてるのにね)、
いちいち真に受ける気も無いんだよなぁ、あんまり。
0238デフォルトの名無しさん
2008/11/09(日) 15:45:22やっぱり括弧の対応関係のバグには悩まされるのが現実。
0239デフォルトの名無しさん
2008/11/09(日) 15:46:35(なんていうかな、おなじ項数の式になったとして。
より少ない項数で書けるかどうかの比較も絡むので
これ以上は立ち入ると危険。)
0240デフォルトの名無しさん
2008/11/09(日) 15:47:23ニュータイプ専用機にはサイコミュ載せときゃいい
オールドタイプにサイコミュ機乗せたり
ニュータイプに量産機乗せたりする必要はない
0241デフォルトの名無しさん
2008/11/09(日) 15:50:23そうやって、どんどん廃れていってるわけだ。
0242デフォルトの名無しさん
2008/11/09(日) 15:51:34あと、インデント無しで作業しろ、なんてことをもし言われたら(ねーよw)、やっぱり滅茶苦茶苦しい。
「エディタ支援とインデントに期待できない状況」なるものを仮に想定するなら、
Lispの扱いにくさは最悪に近いと思う。確かに。
でも現実には、どっちもまず間違いなく存在を期待していいから、
そんなに困らないというか、別段他言語との差を感じないというのが個人的な現状だなぁ。
0243デフォルトの名無しさん
2008/11/09(日) 15:53:33字下げがないと読みにくいのは他の言語も一緒
字下げがない場合は括弧が多いほうが読み易い自分はマイノリティなのかな
0244デフォルトの名無しさん
2008/11/09(日) 15:54:2780年代のレスならそれで正しいと思うけど、
21世紀も8年が過ぎようという今「どんどん廃れていってる」ってのは、
一体いつの普及度と今を比べてるのか、よーわからん表現だと思う。
0245デフォルトの名無しさん
2008/11/09(日) 15:56:40> MSもGoogleもAppleもNASAもみんなPythonを使ってる。まあお前らも
> はやく目覚めるといいね、と。
Pythonでできる仕事はPythonでやればいい、
PCLの例題をPythonで書き換えた本を、
出せるもんなら出してみろってだけ。
0246デフォルトの名無しさん
2008/11/09(日) 15:57:290247デフォルトの名無しさん
2008/11/09(日) 15:59:570248デフォルトの名無しさん
2008/11/09(日) 16:11:08Emacsなしではつらいと思います
普段はvim使ってるんですが
Pythonをカッコの無いS式と呼ぶのは、なんか物凄く違う気がしますよ
Pythonのコードとデータは別物だし
コードも式と文が分かれているし
Pythonのリストはベクタだし
マクロもシンボルもないし
末尾再帰の最適化もしません
Pythonの強みは、全然違うポイントにあると思います
0249デフォルトの名無しさん
2008/11/09(日) 16:14:28Pythonはあらゆる仕事ができるし、できない仕事はやる価値がない。
PCL?未だにPracticalとか言ってる時点で終わってる。
Pythonはすべてが実務だ。
0250デフォルトの名無しさん
2008/11/09(日) 16:19:10Peter 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 のこんな構文木をいじれるのは本当の
> エキスパートだけだろう。
(以下略)
使いたくないな
0252デフォルトの名無しさん
2008/11/09(日) 16:29:330253デフォルトの名無しさん
2008/11/09(日) 16:40:140254デフォルトの名無しさん
2008/11/09(日) 16:41:170255デフォルトの名無しさん
2008/11/09(日) 16:42:520256デフォルトの名無しさん
2008/11/09(日) 16:45:47pgはvimを使ってる
0257174
2008/11/09(日) 17:46:20>p.31の最後の例 (call/cc procedure?) => #t の意味がわかりません.
call/ccのはたらきは「continuatoinを生成すること」だと理解していましたので,
それがなぜこのような評価結果につながるのかがわからないのです.
これまで見たcontinuationの使い方はたとえば
(define cont #f)
(+ 20 (call/cc (lambda (k) (set! cont k) 30))) ;=>50 ;continuation生成
(cont 70) ;=> 90 ;continuation再開
のようなものばかりで,質問の例の使い方をこの用法に対応させて考えることができません.
なにとぞよろしくご指導のほどお願いします.
0258デフォルトの名無しさん
2008/11/09(日) 17:51:03(call/cc (lambda (k) (set! cont k) 30))
(procedure? cont)
0259デフォルトの名無しさん
2008/11/09(日) 17:58:520260デフォルトの名無しさん
2008/11/09(日) 18:15:55拡張ライブラリ。電池。いわゆるバッテリー。
0261デフォルトの名無しさん
2008/11/09(日) 18:17:480262デフォルトの名無しさん
2008/11/09(日) 18:35:45http://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:400265174
2008/11/09(日) 19:01:18そうか!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グレアムが書いてたのは、ViaWeb同僚のトレバーが作った「セグウェイもどき」の話。
0267デフォルトの名無しさん
2008/11/09(日) 22:48:060268デフォルトの名無しさん
2008/11/09(日) 23:02:07()の対応見直してから寝ます。
0269デフォルトの名無しさん
2008/11/09(日) 23:42:27末尾コンテキスト以外で呼び出しても
あたかも末尾呼び出しされたかのように返ってこない。
これさえなければ参照透明性を侵さないと思うのですが。
末尾コンテキスト以外での継続の呼び出しなんてトリッキーなんだから
普通の手続きとして実装すればいいのに。
0270デフォルトの名無しさん
2008/11/09(日) 23:45:33そこで、やさしいCプログラミングですよ
ttp://www.pro.or.jp/~fuji/computerbooks/c/c.modula2.html
0271デフォルトの名無しさん
2008/11/10(月) 00:31:580272デフォルトの名無しさん
2008/11/10(月) 01:08:020273デフォルトの名無しさん
2008/11/10(月) 02:24:20藤原さんは相変わらず文章が(ry
0274デフォルトの名無しさん
2008/11/10(月) 02:44:35いろんな意味で涙が出てくる
0275デフォルトの名無しさん
2008/11/10(月) 08:11:49これって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特に名前はないと思う。
0277デフォルトの名無しさん
2008/11/10(月) 09:33:18末尾コンテキストじゃないとこで継続手続きを呼べなかったらcall/ccの意味が無くなるぞ
(全部CPSで書けば済むことだから)
0278デフォルトの名無しさん
2008/11/10(月) 11:23:21あれを読もうとしたことがあるやつが俺以外にもいるとは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末尾以外でも使えないと大域脱出のときに困るのでは?
0281デフォルトの名無しさん
2008/11/10(月) 12:57:180282デフォルトの名無しさん
2008/11/10(月) 15:58:529章のY-Combimatorの説明は大体わかったんだけど、
(lambda (waha)
(lambda .(a lat) ....(waha ....)....))
で再帰できないみたい。
なんか間違ってる?
0283デフォルトの名無しさん
2008/11/10(月) 16:02:02> .(a lat)
先頭のドットはミスでつ。入りません。
0284デフォルトの名無しさん
2008/11/10(月) 18:29:45誰がapplyしてくれてるの?
>>280
でもそれ副作用だし
>>281
末尾コンテクスト以外で戻ってこなかったら手続きじゃないだろうそれ……
0285デフォルトの名無しさん
2008/11/10(月) 19:05:00>なんか間違ってる?
大体わかってるみたいだけど、完全にわかってるわけではないようだ。がんがれ!
0286デフォルトの名無しさん
2008/11/10(月) 19:08:30ま た お 前 か
がんがれ
0287デフォルトの名無しさん
2008/11/10(月) 20:16:08> 普通の手続きとして実装すればいいのに。
何言ってるのこの人?
天然なの?釣りなの?
0288デフォルトの名無しさん
2008/11/10(月) 20:23:30ttp://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:26WilikiのScheme:call/ccと副作用という項です
0290デフォルトの名無しさん
2008/11/10(月) 20:41:06(define(手続き)(call/cc(lambda(c)c)))
ちなみに継続は副作用じゃないよ
そこにあって当然のものを持ちまわれるようにしただけ
0291デフォルトの名無しさん
2008/11/10(月) 20:47:25call/ccは副作用なんです
0292デフォルトの名無しさん
2008/11/10(月) 20:51:46> 手続きと違うものなのにprocedure?を満たすことには違和感を覚えます。
天然かよ。
0293デフォルトの名無しさん
2008/11/10(月) 20:53:070294デフォルトの名無しさん
2008/11/10(月) 20:53:17> 脱出手続きとは、もし後でこれを呼び出すと、
> その時たとえどんな継続が有効であっても捨て去り、
> そのかわりに脱出手続きが作られたときに有効だった継続を使うことになる> Scheme手続きである。
とありますが
「普通の」Scheme手続きなら「継続を捨て去」ることはしないわけで
ここが副作用の根本だと思うんです。
0295デフォルトの名無しさん
2008/11/10(月) 20:56:210296デフォルトの名無しさん
2008/11/10(月) 20:58:47どうおかしいので?
じゃあcall/ccがもたらす「継続オブジェクト」が参照透明性を破る原因は何なのですか?
0297デフォルトの名無しさん
2008/11/10(月) 20:59:140298デフォルトの名無しさん
2008/11/10(月) 20:59:210299デフォルトの名無しさん
2008/11/10(月) 20:59:490300デフォルトの名無しさん
2008/11/10(月) 21:02:29↓取りうる選択肢
・副作用を容認する。
・call/ccを使わずにpureに生きる。
斜めな人
・継続を手続きにすればいい。
( ゚д゚)ポカーン
0301デフォルトの名無しさん
2008/11/10(月) 21:03:16呼んだあとに帰ってくる手続き、という意味です。
不適切な表現だったかもしれません。
>>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> ・末尾文脈で呼び出せば脱出に使える。
末尾なら脱出じゃねーしw
0305デフォルトの名無しさん
2008/11/10(月) 21:28:08「頭痛い」
↓
バファリン → やさしさ
↓
副作用
|
\ _ / ピコーン!
― (ω) ―
lヨ
∧ ∧
(・∀ ・) 「call/ccって副作用?」
ノ( )ヽ
< >
このスレは半分「やさしさ」でできています
0306デフォルトの名無しさん
2008/11/10(月) 21:46:19Wilikiの項を読んでください。
私の勘違いや不勉強があれば指摘してくださるとうれしいです。
>>304
問答無用でジャンプする「フルスペックの」脱出はできませんが
末尾文脈にも分岐が存在しえる以上「ある種の」脱出ができると考えられます。
0307デフォルトの名無しさん
2008/11/10(月) 21:50:450308デフォルトの名無しさん
2008/11/10(月) 22:14:18とりあえず、副作用なしで、
末尾ジャンプよりもリッチな意味を持ち、
継続と同等のことができるものを提示しなよ。
具体的な形で。
ちなみに方向は逆の話だが面白かった。
Flatt, Yu, Findler, Felleisen
Adding Delimited and Composable Control to a Production Programming Environment
0309デフォルトの名無しさん
2008/11/10(月) 22:15:170310デフォルトの名無しさん
2008/11/10(月) 23:11:333行の短かい答え:
発想は悪くない。
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:350312デフォルトの名無しさん
2008/11/11(火) 00:22:55!?
コルーチンきれい!
ふしぎ!!
0313デフォルトの名無しさん
2008/11/11(火) 00:32:59http://codepad.org/T0Di1QCK
0314デフォルトの名無しさん
2008/11/11(火) 02:00:35(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「....」で省略しないで全部書け。コピペ出来るだろ?
長いなら>>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:54http://codepad.org/KbHy4nk9
0317デフォルトの名無しさん
2008/11/11(火) 07:58:22上の他のレスでもあることだけれども、継続と継続関数を混同しているね。
だから「継続」が「終わる」とか「戻る」とか言葉使いがちょっと変。話題に合
わせてわざとやっているのかな?
0318デフォルトの名無しさん
2008/11/11(火) 10:00:08http://codepad.org/o5QUidyU
0319デフォルトの名無しさん
2008/11/11(火) 10:00:51確かに「継続が戻る」と言われても混乱するかも。
関係ないけど「funcallを呼び出す」って??みたいな。
Common Lispなら (funcall ...) と (return-from ...) の違いは明確だから
混同するやつはいない。
Schemeではfuncallもreturn-fromも省略された形で、見た目では区別できなくなった。
0320デフォルトの名無しさん
2008/11/11(火) 10:19:33手続きは戻るものである。
故に継続は戻る物である。
継続が戻らないとすれば
継続は手続きではない、または
手続きは戻るとは限らない。
0321デフォルトの名無しさん
2008/11/11(火) 10:32:41http://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(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> 継続は手続きである。
仕様を読みましょう。
Continuationとescape procedureは別。
Schemeで1st class objectなのは、
call/ccの作るescape procedureであってcontinuationじゃない。
Escape procedureは、call/ccした時点のcontinuationへの
遷移と値の受け渡しを担ってる。
表示的意味論での継続は、意味関数で意味付けられていて、
それとほぼ同型。CPS風の意味論で顕著。
0324デフォルトの名無しさん
2008/11/11(火) 11:01:31http://codepad.org/QpVFT6bC
0325デフォルトの名無しさん
2008/11/11(火) 11:44:11http://codepad.org/FJTpKfWe
0326デフォルトの名無しさん
2008/11/11(火) 11:59:03R5RSの1.1にはコンティニュエーションは"first class" statusとあります。
ただ
> オブジェクトには手続きとコンティニュエーションが含まれる。
とあるので暗に手続きとcontinuationは別ものであるように書かれています。
脱出手続きはScheme手続きであるという表現がありますので
仰るように脱出手続きとコンティニュエーションは別と考えられます。
そうなると"first class" statusにあるコンティニュエーションはどのように得られるのでしょうか?
ただ単に1章では脱出手続きとコンティニュエーションを意図的に混同して書かれただけなのでしょうか?
0327デフォルトの名無しさん
2008/11/11(火) 13:44:29> 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その文言は"-"を除いてR5RSにもありますね
もっとしっかり読み込んでみます
0330269,306他
2008/11/11(火) 14:42:52ありがとうございます、読んでみます。
手続きという定義があいまいなものを(私が勝手に)解釈してしまっていたようです。
関数:引数を受け取り、値を返す。呼ばれたら戻ってくるもの。参照透明。
手続き:引数を受け取る。値を返すこともある。戻ってこないこともある。applyできるものの総称。副作用を伴うこともある。
くらいにとらえたらよかったのかもしれません。
RnRSを作った方たちがあえて関数ではなく手続きとしたのもここらへんの問題もあったのかもしれませんね。
0331デフォルトの名無しさん
2008/11/11(火) 15:44:27http://codepad.org/phUFb8oU
0332デフォルトの名無しさん
2008/11/11(火) 17:29:410333デフォルトの名無しさん
2008/11/11(火) 18:26:51携帯からなので貼っていただいた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:53GOTO文の正体はcall/ccとretrecってことなのかな。
トップレベルの時はretrecの代わりにdefineで名前を付けてやるのかな?
0335デフォルトの名無しさん
2008/11/11(火) 23:04:020336デフォルトの名無しさん
2008/11/12(水) 13:38:54プリミティブは存在しないのです。
0337デフォルトの名無しさん
2008/11/12(水) 14:44:59つ 表示的意味論
0338デフォルトの名無しさん
2008/11/12(水) 16:48:23これじゃLispの評判が悪いわけだ
0339デフォルトの名無しさん
2008/11/12(水) 16:51:37つ __attribute__ ((noreturn));
0340デフォルトの名無しさん
2008/11/12(水) 17:58:25もし本当にこの程度のレスが「ガラが悪い」と特筆するに値するなら、
それはLispスレが異常に友好的だってことで、2行目にはまったく繋がらないよ。
少しでいいから頭使って絡んでくれ。
0341デフォルトの名無しさん
2008/11/12(水) 18:08:100342デフォルトの名無しさん
2008/11/12(水) 18:55:210343デフォルトの名無しさん
2008/11/12(水) 19:01:010344デフォルトの名無しさん
2008/11/12(水) 19:05:580345デフォルトの名無しさん
2008/11/12(水) 19:29:560346デフォルトの名無しさん
2008/11/12(水) 20:06:110347デフォルトの名無しさん
2008/11/12(水) 20:22:46とかねがね思っているのだが。
仮にそれが正しいとしましょう。
Lisperは頭良い人の割合が多いから(マジで?!)
そりゃイヤミな書き込みもあるだろう。
それでもそんなに言うほど空気悪くないのは
頭が良いだけではなく悟りを開いた人が多いから(マジで?)。
気になる人はストレス溜めておられるのでは。
0348デフォルトの名無しさん
2008/11/12(水) 22:07:00どうせお前らは第一言語を人に教えたくないんだろ
0349デフォルトの名無しさん
2008/11/12(水) 22:39:580350デフォルトの名無しさん
2008/11/12(水) 23:53:09・頭の悪い人は妬みやすい。
・Lispスレは頭の人が結構いる。
という仮定でも、
・Lispスレはイヤミな書込みが多い
と思う人が多くなるぞ。
この書き込みはイヤミじゃないぞ。
俺がそう思ってないし、
俺は頭良くないから、妬むでそう誤解する奴もいない。
0351デフォルトの名無しさん
2008/11/13(木) 00:24:02拡張がぜんぜん入ってないんじゃあんまりメリットない気もする。
あくまで入門者むけのセットって感じなのかな。
コンセプトがイマイチはっきりしない。
0352デフォルトの名無しさん
2008/11/13(木) 00:31:390353デフォルトの名無しさん
2008/11/13(木) 01:00:400354デフォルトの名無しさん
2008/11/13(木) 01:29:51デバッグ機能の強化は1.0以降の目標、と開発者が明言してる。
あと、Emacs辺り使うと簡単に編集と評価の繰り返しができるから、
デバッグ出力の追加とか、関数や式単位の評価とか凄い楽にできるし、
デバッガ無くてもあんまり困らない、ってのもあると思う。
0355デフォルトの名無しさん
2008/11/13(木) 02:56:291.0になったら使うかもしれないけど。
0356デフォルトの名無しさん
2008/11/13(木) 03:01:34一応 example として用意されてる3つはコンパイルできてちゃんと動いた。
まだ性能を評価できる段階ではないけど、動くモノが出てきたってことで注目株だと思う。
気合いの入った最適化をする (予定?) みたいだし、期待できるかも。
0357デフォルトの名無しさん
2008/11/13(木) 11:42:54maximaには解説結構あるけどjacalには見つけられない
a:2;
(aに2を代入)
してからlisp層にいって
qed;
lisp上で変数aにアクセスするにはどうすればいいんだろう
0358デフォルトの名無しさん
2008/11/13(木) 12:06:330359357
2008/11/13(木) 15:00:17a:2;
to_lisp();
> (print $a)
2
maximaの変数aはlispで$aになる
という変換があるけど
jacalでどんな変換になってるかの資料をみつけられないのです
0360デフォルトの名無しさん
2008/11/13(木) 20:02:310361デフォルトの名無しさん
2008/11/13(木) 20:54:35私はすごい困っているんで、どうにかして欲しいです。。。
特にrun, break, watchがしたくて仕方が無い。
0362デフォルトの名無しさん
2008/11/14(金) 00:32:53こっちに言われても(´・ω・`)
参考までに、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:28EmacsでM-x run-schemeとか使ってる?
俺もあれ知るまでデバッグ含めて色々しんどかったんだが、
あれを知って極楽浄土モードに突入した。
0364デフォルトの名無しさん
2008/11/14(金) 01:12:17PLTは頑張りすぎで時々暴走モードに突入するお?
やっぱりガウシェに頑張って欲しいお。
寄付金とかは募ってるんですかお?
0365デフォルトの名無しさん
2008/11/14(金) 01:22:22もちろん使ってるけど、最初にオブジェクトを作って
それを処理していくようなプログラムの場合、
run-schemeを行うためにはダミーオブジェクトを作る必要がある。
それが簡単に作れるものならいいけど、例えば1000行程度のファイルをパースして得られるような
オブジェクトの場合、ダミーを作るのは簡単じゃない。
データが複雑になってきた場合のみ、発現するようなバグだと死ねる。
他にも、呼ばれているはずの関数がなぜか呼ばれてないのでその原因を調べたい場合は、
ステップ実行していけばすぐに分かるのに
デバッガが無いがためにいちいち途中経過を出力したり、
コメントを使って原因を特定する必要がある。
なぜか無限ループに陥ってる場合でも、ステップ実行&ブレイクができれば一発で原因が分かる。
0366357
2008/11/14(金) 06:22:03(define (symdef-lookup sym hdns)
...
あたりで対応する変数を探してるのかな?
自前のscheme programからjacalの機能使うのは難しそう・・・
0367デフォルトの名無しさん
2008/11/14(金) 06:22:54特異値分解とかコレスキー分解とかしたかったらGSL使えってことなんでしょうか
0368デフォルトの名無しさん
2008/11/14(金) 07:58:34ユニットテストは書いてるの?
0369デフォルトの名無しさん
2008/11/14(金) 08:23:18> コンセプトがイマイチはっきりしない。
Gaucheboxは書籍「プログラミングGauche」のサンプルコードをWindowsユーザが手軽に試せるように作った。
0370デフォルトの名無しさん
2008/11/14(金) 20:12:24もちろん書いてる。というか書かざるを得ない。
0371デフォルトの名無しさん
2008/11/14(金) 23:38:39ダミーデータの部分が良く分からない。
実際にデータを解析したものを適当に束縛したのとかじゃダメなの?
わざわざ手動で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)) (list + - * /))
0374デフォルトの名無しさん
2008/11/14(金) 23:52:05それだと('+ 10 2)になるからね
0375デフォルトの名無しさん
2008/11/14(金) 23:55:44ありがとうございます。
'(+ - * /) と (list + - * /) はおんなじモノかと思っていました。
違うんですね…
0376デフォルトの名無しさん
2008/11/15(土) 00:24:31何かバグが見つかるたびにデータを用意して、
細切れに関数を処理してというのが面倒なのです。
副作用がある場合は使えませんし。
「副作用無しにプログラムを書くべき」という主張はわかりますし、
「テストしやすいようにモジュール化すべき」というのも理想としては分かります。
しかし、デバッグ環境が貧弱なためにそう書かざるを得ないというのは
非常にダサいのではないでしょうか。
wxWidgetsのプログラミング戦略にもこうあります。
> デバッガを使う
> これはふざけたアドバイスに聞こえるかもしれませんが、意外なことに人々はデバッガを使わないことが多いのです。
> デバッガのインストールや使い方を学ぶことは多くの場合負担となります。しかし、非常にささいなプログラム以外には
> 本当に必要不可欠です。
http://wxwindowsjp.sourceforge.jp/html/2.8.4/wx_debugstrategies.html#debugstrategies
0377デフォルトの名無しさん
2008/11/15(土) 00:49:46gdbが貧弱なのでは
Cにスクリプトを組み込む場合を考えると、全部gdbでできるのが理想だ
0378デフォルトの名無しさん
2008/11/15(土) 02:05:33うーん。長くなってきたし、上手くいけば有益な議論になりそうだから、
せっかくだからWiLiKiに書いてみない? 良い助言が貰えるかもしれない。
あそこ、色んな言語知ってる人とか、開発者の人とかいるし。
最後の補足をしておくと、副作用無しでプログラムを書くべきっていうよりも、
副作用べたべたで書く部分と、副作用無しで書く部分を分ける感じじゃないかな。
それと、確かに、処理系の事情で、特定の手法を強制されるのは好ましくない。
関数的な手法以外も選べるのが言語のひとつの特徴な訳だし。
ただ、こればっかりは開発側のマンパワーの問題だから仕方ないよ。
待つか、書くか、説得するか、諦めるか、乗り換えるしかない。
0379デフォルトの名無しさん
2008/11/15(土) 02:11:00寄付金はどうだろう……。
とりあえず、プログラミングGauche買えば印税行くんじゃないか?
0380デフォルトの名無しさん
2008/11/15(土) 03:08:57コードを寄贈したり、フレームワーク作ったほうが喜ばれるかと。
0381デフォルトの名無しさん
2008/11/15(土) 04:45:39listは特殊形式じゃなくて関数だから、
'(+ - * /)つまり(quote (+ - * /))と同じなのは (list '+ '- '* '/)。(quote/listの分配則)
(map (lambda (op) ((eval op (scheme-report-environment 5)) 10 2)) '(+ - * /))
0382デフォルトの名無しさん
2008/11/15(土) 04:50:50(Lisp/Scheme界ではまだそうでもないが)
デバッガ開発のコストが凄く上がってる。
例えばv8はネイティブ実行オンリーだから、
デバッグモードではインタープリターに格下げってわけにいかないし。
0383デフォルトの名無しさん
2008/11/15(土) 08:52:58eval-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値としては同じだけど前者は定数扱いだから
実装によっては変更不可の場合がある
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:480390デフォルトの名無しさん
2008/11/15(土) 10:08:42考えられるけどやらないのはいいけれど。
0391デフォルトの名無しさん
2008/11/15(土) 10:12:36が、Ypsilonだと通らない。gaucheは通る、さすが。
0392デフォルトの名無しさん
2008/11/15(土) 10:22:48そんなの普通だろ。PLTだって出来るし。
http://codepad.org/dUmojK3B
なんでYpsilonを攻撃するのか、Gaucheを持ち上げるのか理解に苦しむ。
0393デフォルトの名無しさん
2008/11/15(土) 10:27:22どちらかというと、どの処理系を使えばいいのかわからんという愚痴。
0394デフォルトの名無しさん
2008/11/15(土) 10:39:40それがGaucheで使えるのはshiroさんも知らなかったらしいですね
(Wilikiのとおる。さんの項より)
0395デフォルトの名無しさん
2008/11/15(土) 10:43:12規格には無い挙動だよね?
伝統的に許容する処理系は少くないみたいだけど
0396デフォルトの名無しさん
2008/11/15(土) 10:46:09R3RSで削除されたそうです
0397デフォルトの名無しさん
2008/11/15(土) 12:04:350398デフォルトの名無しさん
2008/11/15(土) 13:10:39上の記事で紹介されているDSLについてなんだけど、記事自体は面白いと思ってるし
次回に期待しているんだが、「DSLは魔法ではない」という言葉が、
記事の作者と自分とでちょっと違う気がして気になってる。
おれはグレアムの主張は「本物のPrologコンパイラ >>> 少ないコードで書いたDSLのProlog」
というだけの事だと思ってる。がんばればDSLでもPrologコンパイラに肉薄できるものが
作れると思うんだ。そうとう巨大になるだろうけど、compile があるCLなら原理的には不可能じゃない。
なので、DSLは確かに魔法じゃないけど、けっして限界があるわけじゃない、と思ってる。
誰か意見を聞かせてほしい。
0399デフォルトの名無しさん
2008/11/15(土) 13:37:28ネイティブのデバッガの開発が高くつくのは
ネイティブコードをデバッグするのが難しいというよりも
「任意の」ネイティブコードをデバッグするのが難しいという理由です。
コンパイラとデバッガをセットで開発できるなら、例えば
(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(define ((compose f g) x) (f (g x))) とか使いたい場合にはR6RSの処理系ならばこうすればいいです。
http://codepad.org/RWzYeHo5
0401デフォルトの名無しさん
2008/11/15(土) 14:03:03Lispで実装すると決め打ちすると、最適化の邪魔になるかもしれないよ。
仕様を見てから最適な実装言語を選ぶべきじゃないの?
勘で選ぶのではなく、数学的なやり方で。
・・・みたいな筋書きだと思う
0402デフォルトの名無しさん
2008/11/15(土) 14:06:23DSLというレイヤーでみたらWhatの実現手段が推論だろうが手続きだろうがそれこそどうでもいいんじゃないかな。
単に望みの記述を書くための手段なんだから、DSLの表現にHowを望むかWhatを望むかは使う人次第だと思う。
私はどちらかといえばHowを隠蔽してWhatを記述するためにDSLを使いますよ。
0403デフォルトの名無しさん
2008/11/15(土) 14:13:36そんなふうに考えていた時期が
俺にもありました
0404デフォルトの名無しさん
2008/11/15(土) 14:43:20うーん。自分はLispは「楽」なので使ってるだけなので、
その筋書きだとすると次回に期待。
>>402
>Prolog世代の感想としては、昔は普通にLispで実装されていた
うは。そうなんですか。勉強になります。
DSLをどう書くか、ってその人のキャリアに依存するんですかねぇ。
0405デフォルトの名無しさん
2008/11/15(土) 14:58:12挙げているのがPrologだから、後付けで、
> 高速なマシン語に至る
をLisp処理系とシームレスに埋め込むのは結構難しいよね。
スタックの扱いがかなり違うから。
推論エンジンがボトルネックになりそうなら、高速化したいだろうし。
Grahamはその辺の微妙なラインの話をしていると思われ。
限界があるなんて思ってないと思う。
0406デフォルトの名無しさん
2008/11/15(土) 15:38:34その高速なマシン語に至るってのはどっからでてきた話?
0407デフォルトの名無しさん
2008/11/15(土) 15:53:200408デフォルトの名無しさん
2008/11/15(土) 16:19:29最後の節は単に、この章でつくったのはネイティブコードにコンパイルされて実行されるかもしれないけど、
いわゆる「Prologコンパイラ」と呼べるようなものじゃないよって説明してるだけじゃない?
0409デフォルトの名無しさん
2008/11/15(土) 16:38:490410デフォルトの名無しさん
2008/11/15(土) 16:56:19>本物のPrologコンパイラはループに変換できる規則を探すが、この章のPrologは定数を
>与える式やスタックに割り当てられるクロージャを探している。
と書いてある。要するに規則の実行が探索+解釈だから、インタプリタなんだ。
で、この後に「埋め込み言語は魔法ではない」ってのはProlog的な言語をLispコンパイラ向けに
作ったとしてもPrologコンパイラの代わりにはならないって話だろ。
Prologコンパイラが作りたければ、埋め込み言語の下に結局作らなきゃいけない。
Norvig本ではインタプリタの後にコンパイラも作るので興味があるなら読んでみるといい。
0411デフォルトの名無しさん
2008/11/15(土) 16:58:43408じゃないけどOnLispには
「LispコンパイラはPrologのための最適化ではなくLispプログラムのための最適化」
を狙っていて、それは本物のPrologコンパイラがやるものより低レベル、と書いてるよ。
ただしあくまで「OnLispの第24章で書かれた小さな埋め込み言語」が
低レベルってことだと思うね。
プロプロロガー(っていうのだろうか…?)の意見がぜひ聞きたいなぁ。
0413デフォルトの名無しさん
2008/11/15(土) 17:19:300414デフォルトの名無しさん
2008/11/15(土) 17:23:330415デフォルトの名無しさん
2008/11/15(土) 17:24:350416デフォルトの名無しさん
2008/11/15(土) 17:29:520417デフォルトの名無しさん
2008/11/15(土) 17:31:460418デフォルトの名無しさん
2008/11/15(土) 17:33:10Oz/Mozartは、本が面白かった割には言語は注目されないし。
そもそもLisp系がほとんどなかったしねえ。
0419デフォルトの名無しさん
2008/11/15(土) 17:36:39あれもDSL的なアプローチだな。
Lispの場合、DSLなのか、普通のプログラムなのか、
判断付きかねるところがあるが。
0420デフォルトの名無しさん
2008/11/15(土) 17:50:14ところがそんなふうにベタにコンパイルするんじゃあんまりネイティブにする意味が無いんだな。
特にSchemeの場合、関数を素直に機械語レベルの(マシンスタック操作のある)関数にするんじゃ
性能が伸びない。
デバッグモードとリリースモードで最適化を切り替えるっていうのも、本当にデバッガが必要に
なるような難しいバグはリリースモードでしか出現しない、なんてことがよくあるのでうまくない。
もちろん、最適化をかけつつデバッグ情報を残すことはできるんだが、そう単純な話ではないということだ。
0421デフォルトの名無しさん
2008/11/15(土) 17:59:09分かりました。ためしに書いてみます。
0422デフォルトの名無しさん
2008/11/15(土) 18:21:29Lispは派生言語作るというよりも、
ライブラリになっちゃうのよね。
0423デフォルトの名無しさん
2008/11/15(土) 18:41:19もちろん最適化後のトレースにはいろいろな問題がつきものなのですが・・・
だからといって
「リリースモードでのトレースには問題が出る可能性があるから、デバッグモードでもトレースはしない」
という姿勢はどうなのでしょうか。
個人的には、アプリケーションレベルでのテストやモジュール化を推奨するのではなく、
そういうところこそ綿密なテストとモジュール化を導入していただきたいです。
削減できる時間も全然違いますし。
0424デフォルトの名無しさん
2008/11/15(土) 20:02:34(f (g x)))
の意味が判らない
(define name (lambda 〜に直すとどうなんの?
0425デフォルトの名無しさん
2008/11/15(土) 20:03:09姿勢はどうなのでしょうか、とか言われてもなー。
>>420は「難しい」とは言ってるけど「しないでいい」なんて言ってないぞ。
もうちょっと落ち着きなさいな。
0426デフォルトの名無しさん
2008/11/15(土) 20:05:10Lisp 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うちの処理系では
(define (compose f g) (lambda (x) (f (g x))))
になってnameがシンボルじゃないということでエラーになりますが。
構造化代入かと思ったけど違うようですね。
主観ではこんなのが通る必要はないと思います。
0429デフォルトの名無しさん
2008/11/15(土) 20:10:50(define compose
(lambda (f g)
(lambda (x)
(f (g x)))))
かな
>>428
R2RSまでは規格にあった書き方らしいです
R5RSでも規格違反ではないでしょう(規格にないだけで)
0430デフォルトの名無しさん
2008/11/15(土) 20:18:31型宣言をどこで行うか、ってのが毎回悩みます。
関数内の(declareには違和感が。
0431デフォルトの名無しさん
2008/11/15(土) 20:20:09つ【マクロ】
とはいえ型付きLispはほしいですね
0432デフォルトの名無しさん
2008/11/15(土) 20:34:19(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:070434デフォルトの名無しさん
2008/11/15(土) 20:40:48(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:060436デフォルトの名無しさん
2008/11/15(土) 20:47:03その前に、静的な型矛盾とは?
0437デフォルトの名無しさん
2008/11/15(土) 20:50:36静的な:実行時でなくコンパイル時もしくはロード時に
型矛盾:型エラーをおこす(|してほしい)ような式
0438デフォルトの名無しさん
2008/11/15(土) 20:58:02number-listの終端条件がない
無限リスト?
0439デフォルトの名無しさん
2008/11/15(土) 21:05:29うぐぅ
ボクの頭では無理そうだようぐぅ
0440デフォルトの名無しさん
2008/11/15(土) 21:10:56あれと同じレベルでならとりあえず作れるんでは。
簡単な型チェックができて、パフォーマンスが出ればそれでいいじゃん。
つまり明示的に型キャストするコードを入れるわけだ。
0441デフォルトの名無しさん
2008/11/15(土) 21:14:59Lispは括弧を跨ぐ必要あるから修正大変だよ
うぐぅ
0442デフォルトの名無しさん
2008/11/15(土) 21:29:340443デフォルトの名無しさん
2008/11/15(土) 23:44:10スクリーンショットで分かるんだよわは〜。
0444デフォルトの名無しさん
2008/11/15(土) 23:52:050445デフォルトの名無しさん
2008/11/16(日) 01:57:54〳〵ヷヷ〰(♛Д♛)ゔ〲〰ゔ〲〰
ゔ〲〰ゔ〲〰 乜勹〰スㄜㄝㄋ
〳〵ヷヷヷヷ〰〰〰ゔ〲〰ㄡㄦㄡㄦ
☺☻☺☺☻☺☺☻☺☺☻☺☺☻☺
うぉぐ!(*゜∀゜)〜♡ℳℴℯ❤
ℒℴνℯ..._〆(゜▽゜*)㌰㌰
乜勹〰スㄜㄝㄋ
ゔ〲〰ゔ〲〰 乜勹〰スゔ〲〰ゔ〲〰 乜 勹 〰 スㄜㄝㄋ
う゛〲〰ゔ〲〰 乜勹〰ス
(♛Д♛)ゔ〲〰ゔ〲〰 乜勹〰スㄜㄝㄋ
〳〵ヷヷヷヷ〰〰〰ㄡㄦㄡㄦ
ヺ〲〰ヺ〲〰<br>ℒℴνℯ..._〆(゚▽゚*)㌰㌰
ヺ〲〰 乜勹〰ス
ヺ〲
〳〵ヷヷ〰〳〵ヷヷ〰
0446デフォルトの名無しさん
2008/11/16(日) 08:01:430447デフォルトの名無しさん
2008/11/16(日) 18:53:330448デフォルトの名無しさん
2008/11/16(日) 18:55:130449デフォルトの名無しさん
2008/11/16(日) 21:17:400450デフォルトの名無しさん
2008/11/16(日) 22:19:470451デフォルトの名無しさん
2008/11/17(月) 03:18:23↑何か凄い暴走の仕方してるな。
LisperやSchemerがデバッガの実装手法を知らないと思ってるのか、
頼みもしないのに、余計なことも含めてデバッガ事情を長々と……。
こいつは対話をするつもりがあるのか?
0452デフォルトの名無しさん
2008/11/17(月) 03:34:450453デフォルトの名無しさん
2008/11/17(月) 05:04:580454デフォルトの名無しさん
2008/11/17(月) 05:42:20やっぱでっかい関数にグローバル変数使いまくりって感じか?
まぁそりゃ無いよりはあった方がいいけどさ
0455デフォルトの名無しさん
2008/11/17(月) 06:18:54うん、書いてきた。
真面目に話し合う気があるならWishListとかに要望として書けばいいのに。
律儀に行間を読んで返事してくれてるからいいけど、
あんなのぶっちゃけ議論の切っ掛けになる文章じゃないだろ。
せっかく、Schemeのデバッグ機能の実装の実情とか、
興味深い話聞けそうな良い機会なのにさー。
0456デフォルトの名無しさん
2008/11/17(月) 07:04:210457デフォルトの名無しさん
2008/11/17(月) 07:22:41>>378は反省しる
0458デフォルトの名無しさん
2008/11/17(月) 07:27:16猛省してるよ(´・ω・`)
0459デフォルトの名無しさん
2008/11/17(月) 08:17:19おれは暴走気味でかつ面白いと思ったよ。少しずつ整理したら何か意味のあるものが出てくるんじゃね?
Squirrelの情報とデバッガ原則はまるごと別ページでいいな。
0460デフォルトの名無しさん
2008/11/17(月) 08:41:390461デフォルトの名無しさん
2008/11/17(月) 10:25:48圧力…麻生じゃないんだから、もっと適切な言葉を選べよ。
0462デフォルトの名無しさん
2008/11/17(月) 10:48:12その辺のレイヤーはLLVMに丸投げって手もある。
0463デフォルトの名無しさん
2008/11/17(月) 12:10:560464デフォルトの名無しさん
2008/11/17(月) 13:18:00処理系の内部の解説がもっと増えるといいな
0465デフォルトの名無しさん
2008/11/17(月) 14:00:240466デフォルトの名無しさん
2008/11/17(月) 14:12:03> 特にSchemeの場合、関数を素直に機械語レベルの(マシンスタック操作のある)関数にするんじゃ
> 性能が伸びない。
ソース希望
0467デフォルトの名無しさん
2008/11/17(月) 15:20:17ということで、デバッガのことは彼にまかせようや
0468デフォルトの名無しさん
2008/11/17(月) 16:35:47downloading 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*BSDにした方がいいよ
0470デフォルトの名無しさん
2008/11/17(月) 22:31:21その辺のレイヤーってどの辺?最適化?
個人的にLLVM興味持っているんだけど、あんまり情報ないね…
0471デフォルトの名無しさん
2008/11/17(月) 22:41:20つ JIT+デバッグAPIプリミティブ
> 「副作用無しにプログラムを書くべき」という主張はわかりますし、
> 「テストしやすいようにモジュール化すべき」というのも理想としては分かります。
> しかし、デバッグ環境が貧弱なためにそう書かざるを得ないというのは
> 非常にダサいのではないでしょうか。
デバッグ環境が貧弱なために、ではない。
Scheme においては元々それが自然な書き方であって、
逆らったら何かと不都合なのはアタリマエなんだよ。
「記述スタイルが考えなしなためにデバッグ環境を期待してしまうあなたは非常にダサい」
ということ。
デバッグを支援する環境はあったら便利だとは思うけど、
Scheme (Lisp) 的でない書き方を念頭に置いた上では議論にならない。
デバッガでデバッグしやすい記述をしろとでも言いだしかねない雰囲気さえ読み取れる。
主張が最初からデバッガに向いてしまってて本質を見失っている。
煽る意味であえてそうしたのならいいけど、
Scheme (Lisp) でのデバッグ作業ってものをよくわかった上で検討しないと
デタラメな方向へ向かっていってしまうよ。
0473デフォルトの名無しさん
2008/11/18(火) 00:03:550474デフォルトの名無しさん
2008/11/18(火) 00:17:43個人的には、そんな細かいことで喧嘩すんなと言いたい
Lisp/Schemeは言語の中ではかなり平凡な部類に入るぜ
>>398なんて命令型言語の代表みたいな扱いだしな
0475デフォルトの名無しさん
2008/11/18(火) 00:34:03だよね。Lispは色々なスタイルを選べるのも強みなわけだし。
特に、Schemeなんかは、関数的な手法しかとれないなら、
わざわざ頑張って最小の構成要素考えた意味が、根底から吹き飛ぶ気がする。
0476デフォルトの名無しさん
2008/11/18(火) 00:38:21関数プログラミングをしたいのなら、副作用を嫌えばいい。
命令プログラミングをしたいのなら、どんどん使えばいい。
Schemeで、一体何をしたい?
Schemeコミュニティは、一体何を目指している?
0477デフォルトの名無しさん
2008/11/18(火) 00:39:200478デフォルトの名無しさん
2008/11/18(火) 01:02:42何らかの機能が欲しいのなら、まず、自分の要望を伝えて、
その利点を説き、相手に情報が不足しているなら提示し、
その上で、双方の落とし所を見つけるために話し合うのが筋だろ?
いきなりデバッガトークをアクセル全開で展開し、
頼まれてもいないのに書くのが面倒とか言っちゃう辺り、
どれだけぶっ飛んだ思考回路をしてるのか底が知れない。
出した情報自体は他人の益になってるのが救いだけど。
それと悪ノリ。2chじゃないんだし、むす〜とか空気読めよ。
0479デフォルトの名無しさん
2008/11/18(火) 02:01:07Schemeコミュニティの総意だと受け止めて、
それなら啓蒙しないとと頑張ってしまったんじゃないの?
俺は受け手じゃないからどうでもいいんだが。
0480デフォルトの名無しさん
2008/11/18(火) 03:28:450481デフォルトの名無しさん
2008/11/18(火) 12:21:040482デフォルトの名無しさん
2008/11/18(火) 16:41:460483デフォルトの名無しさん
2008/11/18(火) 21:32:38ていうかそれで十分じゃない。ステップ実行みたいなのって必要あんの?
と思う私はロートルで現状についていけないだけなのかも。
0484デフォルトの名無しさん
2008/11/18(火) 22:49:440485デフォルトの名無しさん
2008/11/18(火) 23:11:33デバッガー使えない頭の固い老害はとっとと隠居しろ。
0486デフォルトの名無しさん
2008/11/18(火) 23:28:14正直、あんまり必要だと思ったことはないのは確か。
あると便利なこともあるけど、そんなことより今問題になってるのは>>376の主張が変ってことでないか?
伝統的な Lisp デバッガでダメなのはどこよ。
0488デフォルトの名無しさん
2008/11/19(水) 00:29:50Schemeのデバッグ環境がCLほど整ってないのが問題なのでは?
0489デフォルトの名無しさん
2008/11/19(水) 02:45:58PLT SchemeはGUIでの充実のデバッグ環境だぞ。
BiglooはBeeがあるし、Guileにもインタラクティブデバッガがある。
他にも各処理系で変わってくるけど、色々。
言うほど酷くないと思うんだが、使ってないだけというオチじゃないのか?
0490デフォルトの名無しさん
2008/11/19(水) 03:16:540491デフォルトの名無しさん
2008/11/19(水) 07:47:34元ネタはgaucheにデバッガがほしいって話じゃなかったっけ?
0492デフォルトの名無しさん
2008/11/19(水) 08:44:220493デフォルトの名無しさん
2008/11/19(水) 10:23:560494デフォルトの名無しさん
2008/11/19(水) 11:11:01肉体機能の切り口で煽ると「脳の軟化」になるんだな。
ちょっとややこしい。
一方発言者の頭は、硬い柔らかい以前に「悪い」で綺麗に統一されてそうではある。
0495デフォルトの名無しさん
2008/11/19(水) 13:28:33↓
賞賛をもって受け入れられるハズが喰い付きが悪いので悩む
↓
持論を作者本人にぶつけるべくWilikiに凸撃
↓
Shiroさんとも話が噛み合ないので悩む(Lisper/Schemerのプログラミングスタイルを理解してないので当たり前)
↓
勢い余って俺が仕様提示するから好きなの実装しろと書いてしまう
↓
それはおかしいだろという突っ込みが横から入る
↓
慌ててページ整理のフリをしてコメントをすべて見えないように
↓
編集履歴には残ってしまうので途方に暮れている ← いまココ
0496デフォルトの名無しさん
2008/11/19(水) 13:35:410497デフォルトの名無しさん
2008/11/19(水) 13:51:34読んでいたら突撃しないと思うが?
0498デフォルトの名無しさん
2008/11/19(水) 14:40:150499デフォルトの名無しさん
2008/11/19(水) 14:44:570500デフォルトの名無しさん
2008/11/19(水) 15:01:50・デバッガ一般論
・別の言語のデバッガAPI
の話しかないなあ。
0501デフォルトの名無しさん
2008/11/19(水) 17:57:46し?
0502デフォルトの名無しさん
2008/11/19(水) 19:54:51namespaceなくてもなんとかなる例はemacs lispみてればなんとなく予想つくけど
0503デフォルトの名無しさん
2008/11/19(水) 20:17:32お前のことは誰も疑ってないから安心しろ。
それにしても、やたらとビジュアル環境にこだわってるけど、
構築に必要なインフラがgdbと違うとでも思ってんのかな?
GUIだろうがCLIだろうが、処理系に要求されるものは変わらないよね?
0504デフォルトの名無しさん
2008/11/19(水) 20:22:030505デフォルトの名無しさん
2008/11/19(水) 20:23:430506デフォルトの名無しさん
2008/11/19(水) 20:35:45最初にLispでプログラムを書いたときにsetqを使いまくっていた
自分を思い出した。関数プログラミングに慣れるとデバッグに対する
考え方も変化すると思うよ。
0507デフォルトの名無しさん
2008/11/19(水) 20:37:26そういうのは少数派で、とにかくデバッガでやるってのが多数派なんだろうか。
0508デフォルトの名無しさん
2008/11/19(水) 21:09:090509デフォルトの名無しさん
2008/11/19(水) 21:11:07個人的には色々興味深かった。Gauche 1.0に期待。
0510デフォルトの名無しさん
2008/11/19(水) 21:11:550511デフォルトの名無しさん
2008/11/19(水) 21:43:28Visualな環境ならそれでいいような気もする
0512デフォルトの名無しさん
2008/11/19(水) 21:54:37同意。
あとどんな相手からでも意味のあるものを取りだそうとする姿勢は
本当に見習いたいよ。
0513デフォルトの名無しさん
2008/11/19(水) 21:59:23味方につけると誉め殺し
0514デフォルトの名無しさん
2008/11/19(水) 22:38:040515デフォルトの名無しさん
2008/11/19(水) 22:39:10粗ってレベルじゃないけどな。
0516デフォルトの名無しさん
2008/11/19(水) 22:47:12というアンチパターンが513ってことだよ
特定の誰かを批判したわけじゃない
0517デフォルトの名無しさん
2008/11/19(水) 23:07:30邪魔なんだけど。
0518デフォルトの名無しさん
2008/11/19(水) 23:18:23とりあえず括弧にでも括っといて忘れちゃいなよ。
0519デフォルトの名無しさん
2008/11/19(水) 23:24:54>>353だろ。
0520デフォルトの名無しさん
2008/11/19(水) 23:24:580521デフォルトの名無しさん
2008/11/20(木) 01:13:16そうかなぁ?
実行単位でのステップ実行って「書き間違い」の認識につながると思うのだけど。
具体例だとテストユニットが通らないけど見た目で気がつかない(読み間違う)様なバグね。
↑みたいなのってステップ実行で変数の変化をみて「あ!」とか思う事あるとおもうんだけどなぁ。
0523デフォルトの名無しさん
2008/11/20(木) 01:39:49じゃ hyperbolic は?
0524デフォルトの名無しさん
2008/11/20(木) 03:26:47何か書きたいことがあれば書けばいいじゃん
0525デフォルトの名無しさん
2008/11/20(木) 06:59:32おまえが蒸し返さなきゃとっくに終了してたな
0526デフォルトの名無しさん
2008/11/20(木) 09:57:42マッチポンプしてんじゃねーよ
Hyperって「度を越した」って意味だな。
超えたものを意味する Meta を連想してそこからメタボリックなオッサンが思い浮かぶ。
イマイチ。
萌えられる理屈を付けてくれ。
0530デフォルトの名無しさん
2008/11/20(木) 12:29:42(use slib)
(require 'eps-graph)
できなかった
パイプでgnuplot使うのが普通なの?
0531デフォルトの名無しさん
2008/11/20(木) 15:09:58(require 'eps-graph) の前に (require 'color)
0532デフォルトの名無しさん
2008/11/20(木) 18:25:31どうやったら使える?
特にup, down, literal-function, definite-integralとか。
0533デフォルトの名無しさん
2008/11/20(木) 20:11:32Unix系のMIT-Schemeにべったり依存じゃなかった?
動いたらうれしいね。SICMが試せるよ。
0534デフォルトの名無しさん
2008/11/20(木) 20:18:47>Unix系のMIT-Schemeにべったり依存じゃなかった?
随分古い情報ですね。Guile用とか出てますよ。
べったり依存は過去の話でしょ。
0535デフォルトの名無しさん
2008/11/20(木) 20:39:01http://www.cs.rochester.edu/~gildea/guile-scmutils/
0536デフォルトの名無しさん
2008/11/20(木) 21:12:32gosh>(load "load.scm")
gosh>(set-current-module generic-environment)
gosh>(print-expression ((D sin) 's))
(cos s)
0537デフォルトの名無しさん
2008/11/20(木) 21:41:39Gaucheに移植されたscmutilsってどこで入手できるんですか?
0538デフォルトの名無しさん
2008/11/20(木) 23:53:27あなたがこれから移植すれば入手できます
0539デフォルトの名無しさん
2008/11/21(金) 01:56:210540デフォルトの名無しさん
2008/11/21(金) 11:51:18(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 "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:43schemeがちょっとしたものなら自分で作れ
という文化だからなの?
0544デフォルトの名無しさん
2008/11/21(金) 17:54:29という文化のせいではなかろうかとふと思った。
0545デフォルトの名無しさん
2008/11/21(金) 19:47:21その本手元にないから立ち読みしてきた。
単にデバッガーを使わないデバッグテクニックを紹介してるだけじゃねーか。
schemeにはデバッガーは不要という理由はどこにもないな。
0546デフォルトの名無しさん
2008/11/21(金) 19:49:200547デフォルトの名無しさん
2008/11/21(金) 19:53:19デバッガ:GDBみたいなの
デバッガー:レースゲームとかでひたすら壁に衝突したりする人
ってな印象が
0548デフォルトの名無しさん
2008/11/21(金) 20:00:510549デフォルトの名無しさん
2008/11/21(金) 20:51:15ものがあったら面白いんじゃない?
デバッガをぶん回す最近の流行に反発を感じるんだよね。
0550デフォルトの名無しさん
2008/11/21(金) 22:12:550551デフォルトの名無しさん
2008/11/21(金) 22:15:140552デフォルトの名無しさん
2008/11/21(金) 22:19:09http://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:55http://codepad.org/DC96M7wC ではzipはこういう定義でいいのかと思うけど、だめ。
問題.zipの定義式を書いてください。
0554デフォルトの名無しさん
2008/11/21(金) 23:24:430555デフォルトの名無しさん
2008/11/21(金) 23:58:23http://codepad.org/STvFIzAp 答え
0556デフォルトの名無しさん
2008/11/22(土) 00:05:48あるよ。
www.literateprogramming.com/lpscheme.pdf
www.literateprogramming.com/tools.html
Knuth先生もMMIXエミュにデバッガ付けてましたが…
パイプラインレベルまでもエミュするCPUエミュレータw
0557デフォルトの名無しさん
2008/11/22(土) 00:10:09http://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リストの長さが同じ場合には上手く動くけど、
長さが違う場合にはSRFI-1のzipのようには動かないです。
http://codepad.org/fwVVGnZJ
>>552のmap listの例はそういう条件でzipと同じ動作をしているので、
完全なzipの代替品ではないことに注意。
0559デフォルトの名無しさん
2008/11/22(土) 01:04:09用語の間違いを指摘することでしか反論できないようだな。
0560デフォルトの名無しさん
2008/11/22(土) 01:15:020561デフォルトの名無しさん
2008/11/22(土) 01:25:56「表記」でしょ?
0562デフォルトの名無しさん
2008/11/22(土) 01:31:58しょーもない釣りはいらん。よそでやれ。
0563デフォルトの名無しさん
2008/11/22(土) 02:27:30なるほどね。たしかにリストの長さが違うと文句言われるよね。
行列ならリストの長さが同じだから気がつかないのか。
http://codepad.org/RGXMLkWF
http://codepad.org/HEst35w8
http://codepad.org/huWMYkFF
正方行列以外でも問題がないから同じように思ってたよ。ありが�d。
0564デフォルトの名無しさん
2008/11/22(土) 05:35:28ありがとう。
プリミティブを公理、きちんと証明されてバグの取れている関数を定理、
自らが作り出したデータ構造なんかを定義、のように見立てて、
数学の証明をするかのように今、書いている関数の正しさを証明していく。
そんなスタイルに憧れる。工学的には手間がかかりすぎて有用ではないかも
しれないけれども。関数プログラミングなら正しさの証明は可能なんじゃないだろうか。
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:05http://uim.googlecode.com/svn/branches/r5rs/scm/util.scm
上記リンクのzipを使うと>>558のようなリストの長さが違う場合も処理できます。
http://codepad.org/j5FehpX1
0569デフォルトの名無しさん
2008/11/22(土) 12:19:11zipは可変個の引数をとるから(zip . lists)の形式でdefineする訳か。
http://pc11.2ch.net/test/read.cgi?bbs=tech&key=1224939205
0570デフォルトの名無しさん
2008/11/22(土) 12:32:25http://codepad.org/xKau7r1q
ということは、最低でも空のリストを1個は渡してやらないとだめってことか。
0571デフォルトの名無しさん
2008/11/22(土) 14:57:40純粋な関数プログラミングだと値の表示もできないよ。
それをするにはディスプレイやその他の状態を変更しなきゃいけないわけで。
0572デフォルトの名無しさん
2008/11/22(土) 15:01:570573デフォルトの名無しさん
2008/11/22(土) 15:36:29そこまで徹底しなくてもいいわけで。
Schemeだと割とゆるめに関数プログラミングできるんでいいと思うよ。
0574デフォルトの名無しさん
2008/11/22(土) 17:13:39宣言的に書く・考えるということにどうも慣れません。
この先Schemerシリーズの続きあるいはLittleの復習、
Gauche本、萩谷先生の関数プログラミング
どれから読むのが良いですか?
0575デフォルトの名無しさん
2008/11/22(土) 17:26:130576デフォルトの名無しさん
2008/11/22(土) 18:08:19Little SchemerはSeasonedと2冊で1セットだけど、
いやになったなら寄り道するのもいいと思うよ。
0577デフォルトの名無しさん
2008/11/22(土) 18:15:10もし古本屋にあれば「ソフトウェア考現学」もマニアックで良かったよ。
0578デフォルトの名無しさん
2008/11/22(土) 18:46:31Schemeのどういうプログラミングスタイルが効果的なのかを教えてくれるし、
どういったことを出来るようになると良いかを考えるきっかけになるから。
自分のやりたいことをハッキリさせれば読むべき本も自分で探せるようになるんじゃないかなぁ。
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> >>570のはこう書き換えられるのに気がつきました。
そう書換えてはいけない。
あえて理由は言わないでおくから考えてみて。
0581デフォルトの名無しさん
2008/11/23(日) 01:10:17そういうのは判ったから、そろそろそういうのに並ぶ新しい概念ってない?
0582デフォルトの名無しさん
2008/11/23(日) 01:25:11モナドとか?
0583デフォルトの名無しさん
2008/11/23(日) 01:25:240584デフォルトの名無しさん
2008/11/23(日) 01:26:010585デフォルトの名無しさん
2008/11/23(日) 01:27:55あとはD言語とかの表明とか?
新しくはないな。
0586デフォルトの名無しさん
2008/11/23(日) 01:30:09俺は気持ち悪くなるから見たくないけど。
0587デフォルトの名無しさん
2008/11/23(日) 01:39:22>>574ですサンクスです。
挙げていただいた本はいずれすべて読みたいです。
Littleが嫌になったわけではないです。とても面白いです。
むしろ早くSeasonedが読みたくて仕方ないです。
ただ、重いです。
情けないようですが、やっぱり理解しやすい日本語で
やさしく書いてあるものが読みたいのです。
Little8〜9章で結構難儀しまして、スレを参照しつつ
おかげ様でなんとか理解したかなと思いますが
だんだん難しくなってきてるのでSeasonedについていけるか不安なのですw
やさしい本を量を読みたいな、と。
でも2冊でひとつという事ですので今はSeasonedまでは読んじゃいます。
どうもでした。スレ汚しで失礼しました。
0588デフォルトの名無しさん
2008/11/23(日) 02:30:540589デフォルトの名無しさん
2008/11/23(日) 02:33:060590デフォルトの名無しさん
2008/11/23(日) 02:36:210591デフォルトの名無しさん
2008/11/23(日) 02:37:39じゃあアクターモデルとか
0592デフォルトの名無しさん
2008/11/23(日) 02:40:520593デフォルトの名無しさん
2008/11/23(日) 04:56:510594デフォルトの名無しさん
2008/11/23(日) 05:20:33ちょっとアローについておれに説明してくれんか?
0595デフォルトの名無しさん
2008/11/23(日) 09:12:11それSchemeじゃん
0596デフォルトの名無しさん
2008/11/23(日) 09:39:360597デフォルトの名無しさん
2008/11/23(日) 11:31:47つ相対完全性定理
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:090602デフォルトの名無しさん
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:070607デフォルトの名無しさん
2008/11/23(日) 15:19:540608デフォルトの名無しさん
2008/11/23(日) 15:52:510609デフォルトの名無しさん
2008/11/23(日) 16:58:33レス有り難う御座います。
どんな場合にまずいことがあるんでしょうか?
考えてみたんですけどわかんなかったです。
0610デフォルトの名無しさん
2008/11/23(日) 17:03:15したいです
可能ですか??
0611デフォルトの名無しさん
2008/11/23(日) 17:18:34ACLっての申し込んじゃって請求書きてて困っちゃってるんだ。
お金振り込んでくれない?」
「おお、ケンジかい。ACLってなんだい?」
「あれだよLispだよ。コンピュータの、口座番号言うよ」
「ちょっと待っておくれ、メモ化しないと」
以下略
0612デフォルトの名無しさん
2008/11/23(日) 18:42:30かつその1度しか行われません
0613デフォルトの名無しさん
2008/11/23(日) 19:39:37"身内の不幸"だって言うんだよ?
うちら家族の問題だから。あーー
あれだ、クロージャだよ」
0614デフォルトの名無しさん
2008/11/23(日) 19:45:38微妙な受け答えにワラタ
0615デフォルトの名無しさん
2008/11/23(日) 20:48:24このスレ的にはDelta Calculusとか。
0616デフォルトの名無しさん
2008/11/23(日) 20:53:45可能です。
0617デフォルトの名無しさん
2008/11/23(日) 20:56:24A「めっちゃ怖い話し聞いた」
その他「何?」
A「一人暮らしのうちのおばあちゃんに電話がかかてってきて
出てみたら『お母さん?俺やけど・・・・』って言って
おばあちゃんが『コンスセルか?』って聞いたら『うん』って・・・
でも、コンスセルおじさんって去年、replacdrで死んでるねん」
その他「えぇ〜!!怖いーーー!!!それで?」
A「『・・・俺、replacdrして・・・・』って言うから、おばあちゃん泣いてしもて
『replacdrの事は気にせんでいいから、もうガベージコレクトされて・・・・』言ったんやて」
その他「うっわー、怖い〜」「せつないーーー」「ほんまにあるんやなぁー、そんなGC」
0618デフォルトの名無しさん
2008/11/24(月) 03:49:490619デフォルトの名無しさん
2008/11/24(月) 15:44:090620デフォルトの名無しさん
2008/11/25(火) 12:15:210621デフォルトの名無しさん
2008/11/25(火) 13:22:50そういうライブラリってあるの?
0622デフォルトの名無しさん
2008/11/25(火) 14:00:23グラフィック出すだけのライブラリでいいなら、Gauche-glとかどうすか?
OpenGLの知識がいるけど。
0623デフォルトの名無しさん
2008/11/25(火) 14:30:26ありがとう!調べてみる
0624デフォルトの名無しさん
2008/11/25(火) 16:00:260625デフォルトの名無しさん
2008/11/25(火) 19:09:45「はじめてのCommon Lisp」
「図解でわかる Lispの全て」
「Lispの絵本」
「Lispで極めるゲームプログラミング」
0626デフォルトの名無しさん
2008/11/25(火) 19:25:200627デフォルトの名無しさん
2008/11/25(火) 19:30:330628デフォルトの名無しさん
2008/11/25(火) 19:43:44本家に異様に充実したマニュアル群がある。
ttp://docs.plt-scheme.org/
0629デフォルトの名無しさん
2008/11/25(火) 19:52:23ttp://www.ccs.neu.edu/home/will/Twobit/benchmarks.html
Ikarusやるなあ。
0630デフォルトの名無しさん
2008/11/25(火) 19:54:230631デフォルトの名無しさん
2008/11/25(火) 20:10:12ラッパ状に珈琲吹き出した
0632デフォルトの名無しさん
2008/11/25(火) 20:14:58ちょっと前にそのあたりを読んでいたのですが、
自分はSVGを出力させることにしました。
SVGはただのXML形式のテキストファイルですので。
ビットマップ画像を自分で生成して出力したい場合は、
PPM形式が単純でよいと思います。
自分の場合は出来合いの画像をSVGに並べただけですが。
むろんgauche-GLとか使ってもよいと思いますが、あの例には大げさに思えます。
0633デフォルトの名無しさん
2008/11/25(火) 20:43:440634デフォルトの名無しさん
2008/11/25(火) 22:19:47Emacs Lispと比べてどんな感じですか?
if_mzschをベースにif_guileとかデッチ上げると幸せになれますか?
0635634
2008/11/25(火) 22:20:25Vim+MZSchemeインタフェースを使ってる方、です
0636デフォルトの名無しさん
2008/11/25(火) 23:24:02このへんに実例あり
ttp://d.hatena.ne.jp/higepon/20060426/1145547441
ttp://d.hatena.ne.jp/aike/20081124
0637デフォルトの名無しさん
2008/11/26(水) 13:20:24if_*はVim scriptでできないことを補うためのもの。
if_*をバリバリに使うこともできるけど、標準では使えないという点で色々面倒。
Vim固有のことに首をつっこむならそれ用のAPIを介さないとダメで、
その辺が面倒臭くなりがちだから結局Vim scriptで書いた方が早いことが多い。
>>634が何をやりたいかにもよるけれど、腐っても最初からLispなEmacsの方が良いよ。
あとScheme系はMzScheme interfaceがあることから
他の処理系用のinterfaceを書いても下手したら見向きもされない。
これは自分がGauche interface書いてvim_devに投げたら総スルーだったこととか関係ありで。
0638デフォルトの名無しさん
2008/11/26(水) 16:41:37SchemeだけのためにPalm買うってのも何だし。
でも手軽に持ち歩いてどこでも勉強したい。ゲーム感覚で。
0639デフォルトの名無しさん
2008/11/26(水) 17:19:23NintendoDSでSchemeを動かしたって話が過去スレにあったような気も
0640634
2008/11/26(水) 20:59:22ありがとうございます、HP拝見させていただきました。
ソースは見られるけどtarやzipでダウンロードしようとするとNotFoundになりますね。
最近Emacs Lispでプログラムを書くのにストレスが溜まって来たので
VimをSchemeで制御できるのなら乗り換えようかと思った次第です。
とりあえず:guileコマンドだけ実装してみました。
(MSGを一回使わないと入力したコマンドが画面に残るのはなぜなんでしょう?)
0641デフォルトの名無しさん
2008/11/26(水) 21:19:47Gauche の公式サイトに置いてある mingw バイナリでは SDL って使えないの?
0642デフォルトの名無しさん
2008/11/27(木) 01:03:5010代の頃に感じたコンピューテーションへのセンス・オブ・ワンダー
みたいなものがよみがえる。
ただ英語がどんな空気なのか読めないのが悔しい。
0643デフォルトの名無しさん
2008/11/27(木) 01:11:160644デフォルトの名無しさん
2008/11/27(木) 04:00:180645デフォルトの名無しさん
2008/11/27(木) 04:06:540646デフォルトの名無しさん
2008/11/27(木) 12:33:470647デフォルトの名無しさん
2008/11/27(木) 14:35:45matrix:product
が長い
mprod
mdet
minv
などの短い名前に変えると
何かと名前がぶつかることあるのか
0648デフォルトの名無しさん
2008/11/27(木) 19:51:54マクロもそうだし、そもそも処理系を選ぶだけでもユーザーの負担が大きい。
0649デフォルトの名無しさん
2008/11/28(金) 23:04:49Scheme(除くGauche、PLTScheme)やCommon Lispではさっぱり見かけないのが不思議だったのですが
Emacs Lispと違ってリーダマクロがあるからだったんですね(たぶん)
リーダマクロのあるScheme処理系が結構多いということをはじめて知りました
0650デフォルトの名無しさん
2008/11/28(金) 23:20:15組み込み関数なんだよ。
ギャップバッファの性質上、(point)使って実装すると遅い。
Lisp/Schemeは、pregexpみたいなライブラリを自前で書いても
それほど速度は落ちない。まともなコンパイラさえあれば。
;; むしろpregexpは他言語のライブラリと比べても速い。
0651649
2008/11/28(金) 23:44:30CLでppcreをコンパイルするとperlよりも速いそうですね。
リーダマクロについて調べてみたら
Gauche:ない
PLT, Guile, Chicken:ある
Gambit-C:リードテーブルはあるがリーダマクロの追加・編集はできない
のようです
0652デフォルトの名無しさん
2008/11/28(金) 23:56:200653デフォルトの名無しさん
2008/11/29(土) 00:13:08たとえばprintf("%d", n);って書くでしょ
バックスラッシュやめて%を使えば解決
もしこれがprintf("\\d", n);だと大変だけど、文字列を使うこと自体は問題ない
0654デフォルトの名無しさん
2008/11/29(土) 02:27:57javascriptは解るがjavaでヒアドキュメントが必要な用途ってJSPか?
つか必要な事する段階で間違ってないか?
0655デフォルトの名無しさん
2008/11/29(土) 03:24:32LISPならそれが簡単にできるのだから!
0656デフォルトの名無しさん
2008/11/29(土) 09:58:110657649
2008/11/29(土) 11:25:50オレ表現とか書式文字列/formatテンプレートならそれでもいいかもしれませんが
正規表現ってバックスラッシュを多用しますよね?(私だけ?)
正規表現を文字列で表現するのが問題だというのではなくて
文字列として評価される時のエスケープシーケンスとしてのバックスラッシュと
正規表現としてのバックスラッシュが重なって読み辛くなるという話です。
そしてこれを解消するのはマクロでは無理で、リードマクロの力が必要になるということです。
0658デフォルトの名無しさん
2008/11/29(土) 11:41:21理解力ゼロ?
0659デフォルトの名無しさん
2008/11/29(土) 12:03:34理解力の問題か?
0660デフォルトの名無しさん
2008/11/29(土) 12:04:150661デフォルトの名無しさん
2008/11/29(土) 12:29:08マクロは広大だわ
0662デフォルトの名無しさん
2008/11/29(土) 22:12:10もうこっちに統合でいいような気がする
0663デフォルトの名無しさん
2008/11/30(日) 00:50:39右も左もわからんようなのが来るとこっちのスレすぐに荒れるからやだ
0664デフォルトの名無しさん
2008/11/30(日) 04:22:070665デフォルトの名無しさん
2008/11/30(日) 11:02:260666デフォルトの名無しさん
2008/11/30(日) 12:06:590667デフォルトの名無しさん
2008/11/30(日) 21:08:020668デフォルトの名無しさん
2008/11/30(日) 21:53:38訳:
他人を非難する人というものは大概にして害なる存在である。いないほうがまし。
0669デフォルトの名無しさん
2008/11/30(日) 22:16:50すれ違いさようなら
0670デフォルトの名無しさん
2008/12/01(月) 00:14:270671デフォルトの名無しさん
2008/12/01(月) 15:46:15非難ってのは既存のものに言及するだけで新しい発見が少ない傾向があるかもしれない
けど、例外はいくらでもあるし、意図的に例外を作り出すこともできる
意図的に糞言語を選んでキラーアプリを作ってみせる人間もいるかもな
0672デフォルトの名無しさん
2008/12/02(火) 22:28:330673デフォルトの名無しさん
2008/12/02(火) 23:32:53,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⊂_ヽ、
. \\ Λ_Λ
\ ( ´Д`)
. > ⌒ヽ
/ へ \
/ / \\
レ ノ ヽ_つ
とか禁止な。
0675デフォルトの名無しさん
2008/12/03(水) 21:26:170676デフォルトの名無しさん
2008/12/03(水) 22:43:43大学で見て驚いた
0677デフォルトの名無しさん
2008/12/04(木) 04:52:42SICP の eval-apply の図っぽさが欲しい
0678デフォルトの名無しさん
2008/12/04(木) 07:14:38超循環モナギコ評価器は2chカキコの本質を見せる。
0679デフォルトの名無しさん
2008/12/04(木) 16:20:40初期のSmalltalkはBasicで書かれていたらしいですね。
0680デフォルトの名無しさん
2008/12/04(木) 16:58:270681デフォルトの名無しさん
2008/12/04(木) 17:02:32選択肢なかったんでないの
0682デフォルトの名無しさん
2008/12/04(木) 18:26:12スティーブ・ラッセルがevalの定義を見ていて、
これを機会語に変換すればLispインタプリタが
できるじゃないか、と思いついたんだ。」
ハッカーと画家 P.188
0683デフォルトの名無しさん
2008/12/04(木) 18:29:28バグをとり、それをLispインタプリタと称したんだ。実際そうだった。
それが、Lispが現在の姿を取った瞬間だった。」
ハッカーと画家 P.189
0684デフォルトの名無しさん
2008/12/04(木) 22:34:22ということが問題なんだよ。
0685デフォルトの名無しさん
2008/12/04(木) 22:45:170686デフォルトの名無しさん
2008/12/05(金) 01:13:160687デフォルトの名無しさん
2008/12/05(金) 22:21:250688デフォルトの名無しさん
2008/12/05(金) 22:27:190689デフォルトの名無しさん
2008/12/05(金) 22:47:340690デフォルトの名無しさん
2008/12/05(金) 22:52:230691デフォルトの名無しさん
2008/12/05(金) 22:56:350692デフォルトの名無しさん
2008/12/05(金) 23:00:070693デフォルトの名無しさん
2008/12/05(金) 23:00:240694デフォルトの名無しさん
2008/12/05(金) 23:02:07>>693
巨大数スレの住人か?
0695デフォルトの名無しさん
2008/12/05(金) 23:04:440696デフォルトの名無しさん
2008/12/06(土) 00:34:070697デフォルトの名無しさん
2008/12/06(土) 03:34:340698デフォルトの名無しさん
2008/12/06(土) 04:58:06Schemer13章に入った(・ε・)ワズカニ前進
0699デフォルトの名無しさん
2008/12/06(土) 12:47:450700デフォルトの名無しさん
2008/12/06(土) 13:20:060701デフォルトの名無しさん
2008/12/06(土) 19:20:08びぶん!
0702デフォルトの名無しさん
2008/12/06(土) 19:23:22末尾再帰も誰か作ってください
0703デフォルトの名無しさん
2008/12/06(土) 19:38:51> RεRS
10秒くらい見つめてたら、眼鏡かけたオタが泣きながら口笛吹いてるように見えた。
0704デフォルトの名無しさん
2008/12/06(土) 19:57:200705デフォルトの名無しさん
2008/12/06(土) 20:11:38最初からそのようにしか見えなかった
0706デフォルトの名無しさん
2008/12/06(土) 21:06:470707デフォルトの名無しさん
2008/12/07(日) 00:23:330708デフォルトの名無しさん
2008/12/07(日) 00:25:220709デフォルトの名無しさん
2008/12/07(日) 01:31:060710デフォルトの名無しさん
2008/12/07(日) 02:59:540711デフォルトの名無しさん
2008/12/07(日) 03:03:150712デフォルトの名無しさん
2008/12/07(日) 14:43:210713デフォルトの名無しさん
2008/12/07(日) 14:44:55名前を売って、IT業界でのし上がる
0714デフォルトの名無しさん
2008/12/07(日) 16:27:040715デフォルトの名無しさん
2008/12/07(日) 16:33:580716デフォルトの名無しさん
2008/12/07(日) 16:58:06人の勝手
0717デフォルトの名無しさん
2008/12/07(日) 17:04:430718デフォルトの名無しさん
2008/12/07(日) 17:32:330719デフォルトの名無しさん
2008/12/07(日) 17:34:180720デフォルトの名無しさん
2008/12/07(日) 17:37:450721デフォルトの名無しさん
2008/12/07(日) 18:38:580722デフォルトの名無しさん
2008/12/07(日) 19:12:030723デフォルトの名無しさん
2008/12/07(日) 19:38:390724デフォルトの名無しさん
2008/12/07(日) 19:45:540725デフォルトの名無しさん
2008/12/07(日) 19:46:47単なる言語なのにやたらノイズが多かった。
それらノイズが無くなれば、Schemeなんて単なる機能の乏しい言語だよ。
どう活用するのか決めないことには未来は無いだろ。
ひたすらノイズを楽しむというのも一つの答えではあるけど、
そんなの馬鹿馬鹿しいと思わない?
0726デフォルトの名無しさん
2008/12/07(日) 19:48:36そう思うのならそれでおしまい。
ただ、それも一つの答え。
0727デフォルトの名無しさん
2008/12/07(日) 19:51:49そんな言語だとして、こうして人がいるのはなんで?
お前はなぜこのスレに書き込んでる?
0728デフォルトの名無しさん
2008/12/07(日) 19:55:19という組み合わせ問題を解けばわかるよ
0729デフォルトの名無しさん
2008/12/07(日) 19:57:03因果が逆。君の言う「ノイズ」の結果がSchemeだろ。
0730デフォルトの名無しさん
2008/12/07(日) 19:57:50おもわない。面白くないなら止めればいい。
0731デフォルトの名無しさん
2008/12/07(日) 19:59:03おもわない。面白くないなら止めればいい。
0732デフォルトの名無しさん
2008/12/07(日) 19:59:050733デフォルトの名無しさん
2008/12/07(日) 20:10:23ハードウェア寄りの記述もできるのにあまり大きくならなかったし、
色んな環境に移植されてる。
こうして見るとやっぱGCがネックなのがわかる。
処理系をGCレスで作れば色んなとこで使えると思う。
0734デフォルトの名無しさん
2008/12/07(日) 22:23:41managedな部分とunmanagedな部分を分離する?
その場合は2つ以上の言語を組み合わせるのが普通だよな
単一の言語でやろうとすればC++の二の舞になる予感が
0735デフォルトの名無しさん
2008/12/07(日) 22:44:32ゲームとか組み込みとか
それよ
0736デフォルトの名無しさん
2008/12/07(日) 22:47:380737デフォルトの名無しさん
2008/12/07(日) 22:48:250738デフォルトの名無しさん
2008/12/07(日) 23:40:11人間のこなせる煩雑さではなくなってしまう。
0739デフォルトの名無しさん
2008/12/07(日) 23:43:16ブロックで囲めばいいんでは。
必要なものはブロック内でマークしといて、
それ以外のブロック内で確保されたやつは抜けた時に全部削除。
0740デフォルトの名無しさん
2008/12/07(日) 23:56:07今のゲームでも最大長みたいなのは判ってるから
固定プール内でやる事が多いよ。
あまり時代に関係ないと思うが。
0741デフォルトの名無しさん
2008/12/08(月) 00:00:50関数やブロック内で寿命を終えるコンスセルの方が圧倒的に少ない。
0742デフォルトの名無しさん
2008/12/08(月) 00:07:330743デフォルトの名無しさん
2008/12/08(月) 01:25:53#<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おそらくだが、slibcat を一旦削除すれば良いと思う。
slib 自体のインストールは出来てるよな?
0746デフォルトの名無しさん
2008/12/08(月) 01:37:550747デフォルトの名無しさん
2008/12/08(月) 01:59:13ありがとうございます!一発解決しました!
>>746
すみませんm(_ _;)m
0748デフォルトの名無しさん
2008/12/08(月) 15:19:340749デフォルトの名無しさん
2008/12/08(月) 15:24:000750デフォルトの名無しさん
2008/12/08(月) 15:36:40カリー・ハワードを勉強すればわかるの?
0751デフォルトの名無しさん
2008/12/08(月) 22:30:03http://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:32http://www.kmonos.net/wlog/61.html#_0538060508
0753デフォルトの名無しさん
2008/12/08(月) 23:30:150754デフォルトの名無しさん
2008/12/08(月) 23:35:190755デフォルトの名無しさん
2008/12/09(火) 07:38:17> Common Lisp
有名な話なのかな。やっぱりAllegroなのかな。
0756デフォルトの名無しさん
2008/12/09(火) 07:38:330757デフォルトの名無しさん
2008/12/09(火) 11:15:05そっちはヴィルヘルム・アッカーマン。
0758デフォルトの名無しさん
2008/12/09(火) 11:31:51他の言語との連携が前提なら処理系ごとに違うffiをなんとかしてください
0759デフォルトの名無しさん
2008/12/09(火) 12:27:39統一できるかどうかは直接は関係ないと思うんだ。
問題があるとすれば "ad hoc, informally-specified, bug-ridden, slow" のどれか。
0760デフォルトの名無しさん
2008/12/09(火) 23:24:54おそらく湾岸戦争の兵站支援システムのことだろうね。Allegroです。
他にも軍の研究所とかがたまに人を募集していたなぁ。
0761デフォルトの名無しさん
2008/12/10(水) 01:29:49Lispハカーの募集をしていたということですか?
0762デフォルトの名無しさん
2008/12/10(水) 17:46:47ある程度大きいもの作ろうとするとnamaspaceありのcommon lispになるのか
emacs lispがnamespaceなしでなんとなってるのはなんでだろう
0763デフォルトの名無しさん
2008/12/10(水) 18:01:580764デフォルトの名無しさん
2008/12/10(水) 19:13:06ってプロジェクトをPHPでやってるんだけど、興味ある?
0765デフォルトの名無しさん
2008/12/10(水) 19:36:420766デフォルトの名無しさん
2008/12/10(水) 19:59:57「emacs lispがnamespaceなしなのはなんでだろう」じゃなくて
「emacs lispがnamespaceなしでなんと”か”なってるのはなんでだろう 」では?
0767デフォルトの名無しさん
2008/12/10(水) 21:40:520768デフォルトの名無しさん
2008/12/10(水) 22:48:090769デフォルトの名無しさん
2008/12/10(水) 23:32:21とりあえず、第五世代コンピュータの成果本読んでみてからだよ。
せっかく和書で読めるんだし。
0770デフォルトの名無しさん
2008/12/10(水) 23:41:39理論だけやって、応用をやらなかったら廃れる。
無意味に理論を追求しても、残るものは少ない。
0771デフォルトの名無しさん
2008/12/11(木) 01:05:260772デフォルトの名無しさん
2008/12/11(木) 02:16:02ttp://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蓑輪太郎氏のブログでも読んでみれば?
0776デフォルトの名無しさん
2008/12/11(木) 08:26:29これは私も持っていますが、今読む価値があるとは思えません。
当時と違って、ソースは幾らでも手に入るし、
blogを通して作者と会話できる時代ですから。
0777デフォルトの名無しさん
2008/12/11(木) 08:36:02週一更新のページで三日返事がないとか言ってぶち切れる人とか怖いです
0778デフォルトの名無しさん
2008/12/11(木) 08:48:040779デフォルトの名無しさん
2008/12/11(木) 08:48:510780デフォルトの名無しさん
2008/12/11(木) 08:52:50当時は処理系実装自体が珍しかったのか本になってるけど、
実装としてはあまり見所はない。
ソース読みたいならmini-schemeのソースでも読んだ方がいい。
1日あれば読める程度の規模でスタックレスで末尾再帰でフル継続だ。
0781デフォルトの名無しさん
2008/12/11(木) 09:47:130782デフォルトの名無しさん
2008/12/11(木) 10:36:25>第五世代コンピュータの成果本読んでみてからだよ。
kwsk
なんか絶版になったのしかみつからなかった
0783デフォルトの名無しさん
2008/12/11(木) 20:35:20副作用を根絶するというより、よくあるパターンに落とし込むことでバグを防ぐ
という方が正しいと思わないか?
0784デフォルトの名無しさん
2008/12/11(木) 21:59:160785デフォルトの名無しさん
2008/12/11(木) 22:51:31副作用とは何か?
俺達は何と戦っているのか?
0786デフォルトの名無しさん
2008/12/11(木) 23:11:120787デフォルトの名無しさん
2008/12/12(金) 12:02:15もし誰かに養殖を教えたらその人はいくらでも魚を増やすだろう。
0788デフォルトの名無しさん
2008/12/12(金) 17:56:37同じ引数に同じメモリセルを返すconsなら参照透明だから
(eq? (cons #t #t) (cons #t #t)) => #t
0789デフォルトの名無しさん
2008/12/12(金) 19:40:18実装的にはわかるけどさ
0790デフォルトの名無しさん
2008/12/12(金) 20:52:16副作用無しで使うならセマンティクスも別に問題にならないと思う。
0791デフォルトの名無しさん
2008/12/12(金) 21:59:12>それって理論が破綻してない?
全然。むしろ昔の数学的。
0792デフォルトの名無しさん
2008/12/12(金) 22:03:56HLISPはHCONSしたときだけ。
0793デフォルトの名無しさん
2008/12/12(金) 22:36:32純粋関数型言語はGC不要なの?
0794デフォルトの名無しさん
2008/12/12(金) 22:48:14でもHaskellとか水面下で副作用を行う言語ではGCは必要です
0795デフォルトの名無しさん
2008/12/12(金) 23:06:380796デフォルトの名無しさん
2008/12/13(土) 18:20:22表面的な文法でなくて、本当に純粋に関数的な言語(プログラム)なら可能だと思うが、
それは道具として使い物にならないという話だと思う
0797デフォルトの名無しさん
2008/12/13(土) 19:40:35(参照カウントを含む)GCなしのスタックだけには出来ないと思います
そもそもコンスセルを返す関数がある限りGCは必要なのでは
もっとも解放をあきらめるとか、明示的な解放に頼るなら別ですが
0798793
2008/12/13(土) 21:23:15参照カウントは使っていいです
boehmとかはだめです
0799デフォルトの名無しさん
2008/12/13(土) 22:43:00何が聞きたいのかよくわからん
「ポインタの循環がないから、巡回チェック不要の参照カウントでOK?」
という質問か?
「巡回チェック不要の参照カウンタ」 が嬉しいのか?
(まぁ手間が省けるのは確かだが、だからといってCONSがどうとかは意味不明)
それとも、循環参照があると参照カウンタは使えないと思い込んでいるのか?
はたまた、「同じ引数には同じCONSセルを返す」 から、その引数は
永遠に固定メモリ領域においておけばよいからGC不要?みたいな発想かな。
すまんエスパーしすぎた
0800デフォルトの名無しさん
2008/12/13(土) 23:21:46そうです
それと、boehm gcの移植が不可能だと思い込んでいる、というのもあります
0801デフォルトの名無しさん
2008/12/13(土) 23:29:06どんなプラットフォームに移植しようと思ったんですか?
0802デフォルトの名無しさん
2008/12/13(土) 23:56:46ラムダ計算の分野と
コンパイラ作成や最適化の分野って
同じ?違う?
0803デフォルトの名無しさん
2008/12/14(日) 00:31:57Z80
0804デフォルトの名無しさん
2008/12/14(日) 01:48:18実装の問題と仕様の問題を取り違えている。
0805デフォルトの名無しさん
2008/12/14(日) 01:49:04ラムダ計算を使って、
コンパイラを作ったり、最適化をしたりする「ことがあります」
0806デフォルトの名無しさん
2008/12/14(日) 15:40:060807デフォルトの名無しさん
2008/12/14(日) 18:38:050808デフォルトの名無しさん
2008/12/14(日) 18:39:510809デフォルトの名無しさん
2008/12/14(日) 21:15:09>>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:25PLTの人たちはRabbitのあとを続けるような研究もやってるね。
0813デフォルトの名無しさん
2008/12/14(日) 23:18:35もしラムダみたいなものやリスプみたいなものが最適化の話にでてきたとしても・・・それは単に実装に便利だからというだけの話。
しかし、もし、アセンブラのニーモニックにlambdaとか入る時代になることがあれば話も違ってくると思われる。
一目でいいから拝ませてほしい。
0814デフォルトの名無しさん
2008/12/14(日) 23:32:050815デフォルトの名無しさん
2008/12/15(月) 01:33:58あんたそりゃLispやがな
0816デフォルトの名無しさん
2008/12/15(月) 04:14:210817デフォルトの名無しさん
2008/12/15(月) 10:14:140818デフォルトの名無しさん
2008/12/15(月) 23:18:420819デフォルトの名無しさん
2008/12/17(水) 22:21:290820デフォルトの名無しさん
2008/12/18(木) 01:01:510821デフォルトの名無しさん
2008/12/18(木) 17:32:17そんな位置づけなの?
0822デフォルトの名無しさん
2008/12/18(木) 17:34:200823デフォルトの名無しさん
2008/12/18(木) 17:50:40そりゃま古典でしょ。
0824デフォルトの名無しさん
2008/12/19(金) 02:03:36そういう意味ですか?(´・ω・`)
0825デフォルトの名無しさん
2008/12/19(金) 02:49:070826デフォルトの名無しさん
2008/12/19(金) 15:34:10SCIPより最近の参照回数が多い本ってある?
俺はないわ。
ドラゴンブックやKnuthのアルゴリズム本は、
ずっと参照回数が少なくなってる。
D+A=Pなんて昔は良く参照したのに…
0827デフォルトの名無しさん
2008/12/19(金) 15:53:58本棚に並んでる背表紙をチラ見してニヤニヤすることは良くある。
0828デフォルトの名無しさん
2008/12/20(土) 17:42:26(前者はSICPより後ですが)
早くR6RS版Scheme48が出ないかなぁ
リリースの間隔が開いてる所を見ると今度こそR6RS版になるのかなぁ
出たらR6RSを読み始めよう
0829デフォルトの名無しさん
2008/12/20(土) 20:48:510830デフォルトの名無しさん
2008/12/20(土) 20:52:37思い立ってから48時間で出来ますた、の48
マニュアルに書いてあるよ。
0831デフォルトの名無しさん
2008/12/20(土) 23:37:40SCIPに誰も突っ込まないのな
まさかskipとか言うオチ?
0832デフォルトの名無しさん
2008/12/21(日) 00:43:08アタマのいい人ってのはすげぇなぁ
0833デフォルトの名無しさん
2008/12/21(日) 09:58:19(ノ´∀`*) テレル
0834デフォルトの名無しさん
2008/12/21(日) 10:19:23Exerciseを全部やったとは言え、
480時間くらいかかった俺が通りますよ
0835デフォルトの名無しさん
2008/12/22(月) 03:55:40http://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書き忘れた。
自宅のはCeleron 2.66Ghz。
サーバーのCPUって何だろう?
0837デフォルトの名無しさん
2008/12/22(月) 09:15:07と思ったけど
http://codepad.org/xVGG7r0w
やってみたらもっと速くなった。Core4Quadか?
0838デフォルトの名無しさん
2008/12/22(月) 11:02:22ttp://codepad.org/QLNrvm3p
0839デフォルトの名無しさん
2008/12/22(月) 23:28:51ありがとうございます
0840デフォルトの名無しさん
2008/12/23(火) 20:56:200841デフォルトの名無しさん
2008/12/23(火) 21:32:230842デフォルトの名無しさん
2008/12/23(火) 21:36:280843デフォルトの名無しさん
2008/12/24(水) 17:36:190844デフォルトの名無しさん
2008/12/24(水) 18:15:43あとgoshはREPLを起動するプログラムの名前なので、その文脈ではGaucheと
呼ぶのが正しい。
0845デフォルトの名無しさん
2008/12/24(水) 18:20:410846デフォルトの名無しさん
2008/12/24(水) 18:27:470847デフォルトの名無しさん
2008/12/24(水) 19:45:12何でGaucheだけだと思ったのかは知らないけど、
PLTとかも普通にできるよ。ドキュメントにやり方がきちんと載ってる。
0848デフォルトの名無しさん
2008/12/24(水) 19:49:29Gauche ごーしゅ
って言い分けない?
0849デフォルトの名無しさん
2008/12/24(水) 19:51:420850デフォルトの名無しさん
2008/12/24(水) 20:10:060851デフォルトの名無しさん
2008/12/24(水) 21:39:230852サンタクロージャ
2008/12/25(木) 03:04:24つ()
0853デフォルトの名無しさん
2008/12/25(木) 04:06:24Gauche [gou∫]
0854デフォルトの名無しさん
2008/12/25(木) 15:21:44名前でワラタ
0855デフォルトの名無しさん
2008/12/26(金) 02:44:060856デフォルトの名無しさん
2008/12/26(金) 15:37:09svnはもう古いのだろうか
0857デフォルトの名無しさん
2008/12/26(金) 18:43:180858デフォルトの名無しさん
2008/12/27(土) 03:17:170859デフォルトの名無しさん
2008/12/28(日) 12:35:05ifを使うときに
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:290861859
2008/12/28(日) 12:49:19ifの分岐の中にbeginをいれてやってみます
0862デフォルトの名無しさん
2008/12/28(日) 13:11:30http://codepad.org/XnqRbNSY
0863デフォルトの名無しさん
2008/12/28(日) 13:47:190864デフォルトの名無しさん
2008/12/28(日) 14:15:540865デフォルトの名無しさん
2008/12/28(日) 14:31:02h
e
l
l
o
0866デフォルトの名無しさん
2008/12/28(日) 18:10:45http://codepad.org/cGV6ISco
0867859
2008/12/28(日) 21:42:43>865
自分の使ってるGIMPというフリーソフトのscript-Fuという
Schemeっぽいのでやってるんですが
Error: eval: unbound variable: regexp-replace*
Error: eval: unbound variable: printf
でしたOTL
すいません、また質問なんですけど
型の違う変数どうしを計算するにはどうしたらよいのでしょうか?
wはint32
sはなにかわからないのですが0から1000までの数しか使いません
(- w s)すると
Error: -: argument 1 must be: number とでてしまいます
たぶん型が違うんだなというところまでは分かったのですが
その先どうしたらよいかわかりません
よろしくお願いします。
0868デフォルトの名無しさん
2008/12/28(日) 21:57:13wって本当に数値なの?
実はリストだったりしないの?
0869デフォルトの名無しさん
2008/12/28(日) 21:58:20wって本当に数値なのw
実はリストだったりしないのw
0870859
2008/12/28(日) 22:03:26GIMPで開いている画像の幅で
実際に入力されている値(400)もきちんと出ています。
0871デフォルトの名無しさん
2008/12/28(日) 22:06:510872デフォルトの名無しさん
2008/12/28(日) 22:11:42then/else式がそれぞれシンボルthen/elseに連なるリストの時は
そのcdrをbeginで囲った式として働き、
それ以外はif式と同じように働くマクロif*を書いてみては?
(if* boolean
(then (foo) (bar))
(else (hoge) (funi)))
みたいな
0873859
2008/12/28(日) 22:40:47試しに普通の計算式(-12 5)をやってみたら
括弧のない7が表示されました。
あと、wを使った(- w s)の計算結果を
入力するところの型はFLOATです
後出しですいません。
0874859
2008/12/28(日) 22:46:29(set! w(car(gimp-image-width img)))
という風にcarをつけたら計算出ました
すいませんすいませんこんなことで煩わせてごめんなさい
0875デフォルトの名無しさん
2008/12/28(日) 23:29:13(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:14http://www.ve3syb.ca/software/gimp/tiny-fu-faq.html
0877デフォルトの名無しさん
2008/12/29(月) 18:45:33SIODはscheme風のLispだったよね。
0878デフォルトの名無しさん
2008/12/29(月) 20:41:570879デフォルトの名無しさん
2008/12/29(月) 21:12:100880デフォルトの名無しさん
2008/12/29(月) 21:51:32流行らせる以外の解決策はないのか?
0881デフォルトの名無しさん
2008/12/29(月) 21:52:520882デフォルトの名無しさん
2008/12/29(月) 23:03:342. アクシズを地球に落とす
3. プログラマの9割をバグで抹殺する
0883デフォルトの名無しさん
2008/12/30(火) 00:36:57ソース示せないけど
0884デフォルトの名無しさん
2008/12/30(火) 01:12:30これ?
http://tech.mit.edu/V125/N65/coursevi.html
その後どうなったのか、そういえば知らないなあ。
0885デフォルトの名無しさん
2008/12/30(火) 01:58:040886デフォルトの名無しさん
2008/12/30(火) 07:40:240887デフォルトの名無しさん
2008/12/30(火) 13:42:09CSの一番最初っぽい授業は、課題にpythonが使われるとなってるね
http://student.mit.edu/catalog/m6a.html
0888デフォルトの名無しさん
2008/12/30(火) 16:37:010889デフォルトの名無しさん
2008/12/30(火) 16:39:380890デフォルトの名無しさん
2008/12/30(火) 16:49:38Ruby>Python>>>>>>>>Lisp
だね。
MITもポピュラー指向になったのだから次はより人気のあるRubyだよ。
0891デフォルトの名無しさん
2008/12/30(火) 17:03:250892デフォルトの名無しさん
2008/12/30(火) 17:11:34アメリカではPythonの方がずっと多い。
ただRubyはたぶん日本のソフトウェアとしては過去最高の本の冊数だと思う。
Lisp、Scheme合わせても全く及ばない。
0893デフォルトの名無しさん
2008/12/30(火) 17:41:580894デフォルトの名無しさん
2008/12/30(火) 18:21:52だからあんまり教育には向かない。
#それがいいか悪いかはまた別問題だが
0895デフォルトの名無しさん
2008/12/30(火) 20:03:500896グラハム
2008/12/30(火) 20:06:50何故って世間はハッカーの遠く後を追っかけるからさ。
0897デフォルトの名無しさん
2008/12/30(火) 21:23:04沈黙はGOLD !
0898デフォルトの名無しさん
2008/12/31(水) 21:46:47ミスター武士道とお呼びしてもいいですか
0899デフォルトの名無しさん
2008/12/31(水) 22:18:330900デフォルトの名無しさん
2009/01/01(木) 01:24:510901デフォルトの名無しさん
2009/01/01(木) 01:40:450902デフォルトの名無しさん
2009/01/01(木) 22:29:030903デフォルトの名無しさん
2009/01/02(金) 03:00:20処理系依存の関数を使っている箇所があるので
その関数を定義していなければ自作の代用関数で置き換えます。
今のところ、
scmでは組込のdefined?
gaucheでは例外を利用した自作のdefined?
を使って判定しており、他は未対応です。
ある識別子がdefine済みかどうかを判定する、
R5RSの範囲で互換性のある方法があれば教えてください。
0904デフォルトの名無しさん
2009/01/02(金) 04:10:05問題は各処理系が自分自身を表わすfeature-identifierを持ってるかなんだけど。
0905デフォルトの名無しさん
2009/01/02(金) 04:23:250906デフォルトの名無しさん
2009/01/02(金) 05:38:540907デフォルトの名無しさん
2009/01/02(金) 15:35:40Gauche では global-variable-bound? が使えるよ。
でも、これは実行時の判定になるので、不充分なケースがあり得る。
slib とかを参考にしてみたら?
0909デフォルトの名無しさん
2009/01/03(土) 04:57:17(define my-foo foo-scm)
でschemeでもclでも動くプログラムは書けるのだろうか
0910デフォルトの名無しさん
2009/01/04(日) 01:22:01http://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一つでも偽があれば偽を返す関数はありますか?
必ずあるとは思うのですが、
どんなキーワードで探せば良いか思いつきませんでした…。
0912デフォルトの名無しさん
2009/01/04(日) 14:35:300913デフォルトの名無しさん
2009/01/04(日) 15:03:49あれは関数じゃない。
r5rs には無い。
けど、srfiでは定義されてる。
any と every
0914デフォルトの名無しさん
2009/01/04(日) 15:10:31ありがとうございます
(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:41orとかandは関数じゃないのでダメ(shortcut semantics のためには関数にできない)だた。
0916デフォルトの名無しさん
2009/01/04(日) 15:25:320917デフォルトの名無しさん
2009/01/04(日) 22:13:350918デフォルトの名無しさん
2009/01/04(日) 22:22:370919デフォルトの名無しさん
2009/01/04(日) 22:34:160920デフォルトの名無しさん
2009/01/04(日) 23:25:00ループを細かく何種類も分類して名前をつけて再利用
でも、名前のない関数をたくさん使う
おもしろいね
0921デフォルトの名無しさん
2009/01/05(月) 08:18:34変数に真偽値のリストが入ってるとか
0922デフォルトの名無しさん
2009/01/05(月) 14:03:37そういう動作でいいんなら
(memq #t list)
(not (memq #f lis))
じゃいけないのん?
0923デフォルトの名無しさん
2009/01/05(月) 14:10:18ポイントフリースタイルですね、わかりました
0924デフォルトの名無しさん
2009/01/05(月) 21:46:390925デフォルトの名無しさん
2009/01/06(火) 01:03:48関数fのaからbまでの積分値を計算する手続きを定義せよ。
引数にf,a,bとnをとり、Simpson公式を使うこと。(nは公式で使用する分割数で偶整数)
0926デフォルトの名無しさん
2009/01/06(火) 01:23:31それがどうしたんだ?
0927デフォルトの名無しさん
2009/01/06(火) 01:36:300928デフォルトの名無しさん
2009/01/06(火) 02:30:560929デフォルトの名無しさん
2009/01/06(火) 10:51:21積分ぐらい紙とペンでやれよ
0930デフォルトの名無しさん
2009/01/06(火) 12:41:18公式通りに愚直に実装したよ
こんなの提出したら赤点喰らうだろうな
これは多分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:200932デフォルトの名無しさん
2009/01/06(火) 13:19:47> 俺の学校は林晴比古の新C入門だった
...説教してやるから先生連れてこい、とか言いたくなった
0933デフォルトの名無しさん
2009/01/06(火) 13:25:25925じゃないが,やっぱSchemeすごいな.
(define testfunc (lambda (x) (* x x)))
(simpson testfunc 0 1 100)
で「1/3」と出るんだね.C/Fortranばっかやってたから新鮮だわ.
0934デフォルトの名無しさん
2009/01/06(火) 15:17:26(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:42Seasoned Schemerの残り(15〜最後)を読む!
SICP読む!
ものまね鳥読む!
GEBよむ!
わだばSchemerになる!わだばSchemerになる!
わだばSchemerになる!わだばSchemerになる!
わだばSchemerになる!わだばSchemerになる!
0939デフォルトの名無しさん
2009/01/07(水) 00:08:44(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:330941デフォルトの名無しさん
2009/01/07(水) 01:07:560942デフォルトの名無しさん
2009/01/07(水) 01:18:14括弧が多すぎて対を探すのが手間かかりすぎるw
コアファイルをダンプするように,
リスト,配列,構造体などの個々のLispオブジェクトをファイルにダンプしたり,
逆に読み込んだりするようなライブラリはありますでしょうか?
0944デフォルトの名無しさん
2009/01/07(水) 03:14:49マジレスするならちゃんとしたエディタ使えばインデントでわかるっしょ
慣れてしまえば括弧なんて空気みたいなもんだよ
0945デフォルトの名無しさん
2009/01/07(水) 03:35:230946デフォルトの名無しさん
2009/01/07(水) 03:54:430947デフォルトの名無しさん
2009/01/07(水) 03:59:58こんなの見つけた
ttp://faroffsea.blogspot.com/2008/04/common-lisp.html
0948デフォルトの名無しさん
2009/01/07(水) 04:05:25はい。
http://lispuser.net/memo/lisp/2006-04-26-03-02.html
0950デフォルトの名無しさん
2009/01/07(水) 07:48:050951デフォルトの名無しさん
2009/01/07(水) 15:07:580952デフォルトの名無しさん
2009/01/07(水) 16:12:04Reimplementing the SECD microprocessor
http://vaxbusters.org/workshop/secd.xml
0953デフォルトの名無しさん
2009/01/07(水) 19:26:08なるほど、興味深いハードウェアですね。
>>947,948の考え方と併せると、将来はプログラミング過程をチップに
ダンプ(配線)として保存しながら、「昨日の続きをやるか」となるかもと妄想。
0954デフォルトの名無しさん
2009/01/07(水) 22:01:480955デフォルトの名無しさん
2009/01/07(水) 23:37:090956デフォルトの名無しさん
2009/01/08(木) 03:17:48元個人VAX11ユーザだったせいかurlにほくそ笑んだよ
0957デフォルトの名無しさん
2009/01/08(木) 16:24:35SICPの4章の最後のデータベースに使ってる論理型言語より細かい処理が出来るよ。
http://codepad.org/qJcs4es4
http://codepad.org/96FTq50M
0958デフォルトの名無しさん
2009/01/10(土) 22:28:530959デフォルトの名無しさん
2009/01/10(土) 22:41:280960デフォルトの名無しさん
2009/01/11(日) 16:49:18これは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:090963961
2009/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どうしてsyntax-rulesやsyntax-caseみたいな複雑なマクロが採用されているのかわかりませんね
0965964
2009/01/11(日) 23:53:510966デフォルトの名無しさん
2009/01/12(月) 00:17:44define-macroでいいもの
追求してオナニーするための道具でしかない
0967デフォルトの名無しさん
2009/01/12(月) 00:44:12eval-whenとかけっこう複雑だし
javascriptかluaを使えばいいと思うよ
0968デフォルトの名無しさん
2009/01/12(月) 01:53:51define-macroに付き物の 「実行時・コンパイル時」とかそういう「泥臭い」概念を
排除して、純粋に「アルゴリズミックランゲージ」を追求しようとしたんじゃない
かなーと思う。
あと、コンパイル時にLispコードが走るってのは理論面でちょっと扱いづらい
ような気もするので、それもあるかも。
まぁ良し悪しは別ね。
俺はdefine-macroの方が好き。
0969デフォルトの名無しさん
2009/01/12(月) 05:37:37syntax-case や syntax-rules はライブラリにしちゃおうなんて提案も挙がってるね。
http://scheme-punks.org/wiki/index.php?title=ERR5RS:A_Concrete_and_Conservative_Proposal
0970デフォルトの名無しさん
2009/01/12(月) 10:34:25syntax-rulesまではよかった、までは・・・
0971デフォルトの名無しさん
2009/01/12(月) 20:20:15逆に、syntax-caseのほうが強力だと説明するのは簡単だけど
0972デフォルトの名無しさん
2009/01/13(火) 01:00:06>あと、コンパイル時にLispコードが走るってのは理論面でちょっと扱いづらい
ような気もするので、それもあるかも。
それはあると思う。別にdefine-syntaxはコンパイルタイムで実行しなければならない
というわけじゃないんじゃないか。
たまたま、分離できるから分離してコンパイルタイムで実行しているだけで、別にその
必然は無いだろう。
関係ないけれど、Schemeがらみでよく考えると意味がつながらない説明が結構ある気が
する。(いままで何となく納得していたけど)
例えば、代入はダメとか。手続き型みたくはプログラム書くなとか。それでいて、
具体的に、どういうものが関数型プログラミングなのかよくわからないという状態。
なんかもー別に、関数型スタイルにこだわる必要ないんじゃない?
0973デフォルトの名無しさん
2009/01/13(火) 01:40:52内部に状態を持たない処理を組み合わせて、
プログラムを書く手法が関数型なんだと思うが。
お前さんも自分で書いてるように。
関数型にマッチしなけりゃオブジェクト指向とかも使えばいいし、
何でもかんでも参照透明にしないでもいいじゃない。
ハッシュとか普通に副作用使ってるし。
0974デフォルトの名無しさん
2009/01/13(火) 01:57:380975デフォルトの名無しさん
2009/01/13(火) 02:01:060976デフォルトの名無しさん
2009/01/13(火) 02:30:38割と幸せじゃない?
0977デフォルトの名無しさん
2009/01/13(火) 07:10:03幸せになろうとする過程こそが幸せなんだ
0978デフォルトの名無しさん
2009/01/13(火) 07:34:480979デフォルトの名無しさん
2009/01/13(火) 08:07:250980デフォルトの名無しさん
2009/01/13(火) 10:12:26common lispにcall/ccないのはそのため?
0981デフォルトの名無しさん
2009/01/13(火) 10:42:16GCとC++デストラクタみたいな関係?
0982デフォルトの名無しさん
2009/01/13(火) 10:54:28手続き型から関数型への変換は機械的にできるんだが、
それをやってもバグが簡単に見つかるわけじゃない。
0983デフォルトの名無しさん
2009/01/13(火) 10:55:41あほですね
0984デフォルトの名無しさん
2009/01/13(火) 11:03:46内容は手続き型そのものだから「こんなの関数型じゃない!」となる。
「関数型」の定義が分からないっていうのはそういうこと。
0985デフォルトの名無しさん
2009/01/13(火) 11:55:53関数的な、参照透明性が保証されている書き方をするなら、
同じ引数を渡せば必ず同じ値が返ってくる。
再現できたりできなかったりするバグっていうのは、
内部に状態を持ってて、その状態がその時々で異なるからこそ、
発生するわけじゃない?
ついでに言うと、どんなバグでも見付かりやすくはならんぞ。勿論。
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綺麗汚いっつったらなんか主観的な美的観点っぽい話になってしまうか
俺の判断基準はもっとシンプルで、
外部の状態に依存する/外部の状態を変更するものは汚い
そうでなく、もし状態を扱っていても、内部で完結していれば、綺麗
です
グローバル変数、I/O、状態を扱う外部モジュールへの依存、などなどが
「汚い」部類に入ることになります
0990デフォルトの名無しさん
2009/01/13(火) 15:05:04やはり最後に勝つのはマルチパラダイムか
0991デフォルトの名無しさん
2009/01/13(火) 15:54:57LispでEmacsのようなプログラムが作れるわけですが
参照透明でお上品でお綺麗なEmacsなんて想像もつかない
キーを一文字打鍵するだけで全部コピーするのは流石にナシでしょうし
モナドだらけになるのでしょうか?
0992デフォルトの名無しさん
2009/01/13(火) 16:23:23I/Oもなの?
Lisp/Schemeが、I/Oに対して行なったストリーム抽象の貢献は、
先行があったとはいえ、独自のものがあったと思うけれど…
0993デフォルトの名無しさん
2009/01/13(火) 16:29:40質問です。
(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えーと、自分の「汚い」という意味は、「悪い」というのとは違います
I/Oなしで意味のあるプログラムを書くのは不可能ですし……
単に「現実の泥仕事」に近く、「バグや問題が出やすい場所」と認識しているだけです
0995デフォルトの名無しさん
2009/01/13(火) 16:36:42defineは式ではないので本体部の先頭かトップレベルでしか規格で許されていないから
0997デフォルトの名無しさん
2009/01/13(火) 18:18:13ウソみたいだろ
死んでるんだぜ。それで…
たいしたキズもないのに、ただ、ちょっとタイプどころが悪かっただけで…
もう動かないんだぜ
な
ウソみたいだろ
0998デフォルトの名無しさん
2009/01/13(火) 20:49:170999デフォルトの名無しさん
2009/01/13(火) 21:28:501000デフォルトの名無しさん
2009/01/13(火) 21:29:4410011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。