Lisp Scheme Part20

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
2デフォルトの名無しさん:2008/03/09(日) 09:18:21
□参考リンク□

日本Lispユーザ会(日本語)
ttp://jp.franz.com/jlug/index.html
ここにかなりの情報があります。 削るとAllegro Common Lispのページへ

プログラミング言語Scheme(日本語)
ttp://www.sci.u-toyama.ac.jp/~iwao/Scheme/scheme.html
Schemeの人はまずここを見ましょう。

Schemeへの道(日本語)
ttp://www.stdio.h.kyoto-u.ac.jp/~hioki/gairon-enshuu/SchemeNotes/scheme.html
ここはschemeの入門サイト。

Practical Scheme(日本語)
ttp://practical-scheme.net/index-j.html
「普通のやつらの上を行け」など、興味深い文書を沢山翻訳されてます。
(Gaucheという完成度の高いscheme処理系作者さんのページでもあります。)

LispUser.net
ttp://lispuser.net/
3デフォルトの名無しさん:2008/03/09(日) 09:19:45
□仕様関係□

CLtL2: Common Lisp the Language 2nd edition
ttp://www-2.cs.cmu.edu/Groups/AI/html/cltl/cltl2.html

CLHS: Common Lisp Hyper Spec
ttp://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/FrontMatter/Chapter-Index.html

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

R5RS: Revised(6) Report on the Algorithmic Language Scheme (en)
ttp://www-swiss.ai.mit.edu/~jaffer/r5rs_toc.html

R6RS: Revised(6) Report on the Algorithmic Language Scheme
ttp://www.r6rs.org/final/html/r6rs/r6rs.html
4デフォルトの名無しさん:2008/03/09(日) 09:22:26
□SICP関係□

SICP(英語)
ttp://mitpress.mit.edu/sicp/full-text/book/book.html
「計算機プログラムの構造と解釈」の原書です。 全てオンラインで読めます。

計算機プログラムの構造と解釈 第二版 (snip) に関連するホームページ
ttp://sicp.ipl.t.u-tokyo.ac.jp/

□wikipedia関連□

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

□継続□

なんでも継続
ttp://practical-scheme.net/docs/cont-j.html

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

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

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

Kahua: 継続ベースのアプリケーションサーバー
ttp://www.kahua.org/
5デフォルトの名無しさん:2008/03/09(日) 09:23:15
□その他□ (便利な情報リソース)

John McCarthy's Home Page
ttp://www-formal.stanford.edu/jmc/
LISPの生みの親、J・マッカーシーのページだそうです。

Association of Lisp Users 米国のLispユーザ会
ttp://www.alu.org/alu/home

CMUのLisp Repository 新旧様々なプログラムが置いてある
ftp://ftp.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/lisp/0.html

The Common Lisp Cookbook: いわゆる Cookbook
ttp://cl-cookbook.sourceforge.net/

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

Scheme Hash(英語) S式でXMLを使える様にするSXMLなど
ttp://okmij.org/ftp/Scheme/index.html

幻の「入門Scheme」 オンラインで読める
ttp://www4.ocn.ne.jp/~inukai/scheme_primer_j.html

各種scheme処理系をcygwin上からビルドする方法など。
ttp://www.geocities.co.jp/SiliconValley-PaloAlto/7043/

encyCMUCLopedia (cmucl以外でも有益なはず )
ttp://www.isr.ist.utl.pt/library/docs/encycmuclopedia/doc/
6デフォルトの名無しさん:2008/03/09(日) 09:24:40
□その他その2□

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

Cliki (CLコードがたくさん紹介されている。)
ttp://www.cliki.net/index

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

Common-Lisp.net: 多くのプロジェクトがホスティングされてる
ttp://common-lisp.net/

Practical Common Lisp: S式の羅列で現実的な問題をどう解くのかそのギャップに悩まされてる人に
ttp://www.gigamonkeys.com/book/

SLIB
ttp://www-swiss.ai.mit.edu/~jaffer/SLIB.html

SRFI
ttp://srfi.schemers.org/

Meadow memo: 2ちゃんねるログ(dat落ちした過去スレの一部が見られます。 )
ttp://www.bookshelf.jp/2ch/index.html

Lispとは何か
ttp://www.asahi-net.or.jp/%7Eki4s-nkmr/lisp20061121/lisp.html
7デフォルトの名無しさん:2008/03/09(日) 10:00:28
□実装□

Bit (mini-schemeよりも小さい(?)bytecode変換系 )
ttp://www.iro.umontreal.ca/~dube/

Lisp 言語処理系: CAMPUS LIsP, Lemon version (Cでわずか1000行)
ttp://www-masu.ist.osaka-u.ac.jp/~kakugawa/hacks/clisp/

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

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

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

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

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

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

KI-Scheme, AM-Scheme, etc...
ttp://www.nifty.com/download/dos/prog/lisp/

LispMe: Palm 上で動く Scheme 処理系. これも SECD virtual machine.
ttp://www.lispme.de/lispme/
8デフォルトの名無しさん:2008/03/09(日) 10:02:37
□実装その2□

Gauche: R5RS準拠のScheme処理系。Shiro Kawaiさん作。近々書籍が出版されます。
ttp://practical-scheme.net/gauche/index-j.html

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

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

Guile: GNUの拡張プログラミング言語
ttp://www.gnu.org/software/guile/

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

Steel Bank Common Lisp: Common Lisp処理系
ttp://www.sbcl.org/

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

GNU CLISP: Common Lisp処理系
ttp://www.clisp.org/

Embeddable Common Lisp: Common Lisp処理系
ttp://ecls.sourceforge.net/

Arc: ポール・グレアム氏が作成した新しいLisp
ttp://arclanguage.org/
9デフォルトの名無しさん:2008/03/09(日) 10:03:54
□イベント□

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://cl-www.msi.co.jp/solutions/knowledge/lisp-world/articles/scheme
Scheme:マクロ:CommonLispとの比較
ttp://practical-scheme.net/wiliki/wiliki.cgi?Scheme%3a%e3%83%9e%e3%82%af%e3%83%ad%3aCommonLisp%e3%81%a8%e3%81%ae%e6%af%94%e8%bc%83
Script Languages
ttp://cl-www.msi.co.jp/solutions/knowledge/lisp-world/articles/script-lang
10デフォルトの名無しさん:2008/03/09(日) 10:04:41
□書籍□

<プログラミングGauche>
・著者:川合史朗 監修
Kahuaプロジェクト 著
・定価:3360円(本体3200円+税)
・B5変 524頁
・ISBN 978-4-87311-348-7
・発売日:2008/03/14

Scheme処理系言語Gauche(ゴーシュ)の初の解説書!

ttp://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?&ISBN=978-4-87311-348-7

立ち読み版
ttp://karetta.jp/book/gauche-hacks

<On Lisp>

・著者:Paul Graham 著
野田 開 訳
・定価:3990円(本体3800円+税)
・A5 440頁
・ISBN 978-4-274-06637-5

LispハッカーPaul Grahamが、Lispの力の源泉であるマクロプログラミングを解説

ttp://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=978-4-274-06637-5

HTML版
ttp://user.ecc.u-tokyo.ac.jp/~tt076524/onlispjhtml/
11デフォルトの名無しさん:2008/03/09(日) 10:05:13
□2ch上にあるLISP関係のスレ□ (現在)

【入門】Common Lisp その4【質問よろず】
ttp://pc11.2ch.net/test/read.cgi/tech/1201402366/

【CGI】実用比較Lisp vs C/C++【GUI】
ttp://pc11.2ch.net/test/read.cgi/tech/1150501484/

【魔法】リリカル☆Lisp【言語】
ttp://pc11.2ch.net/test/read.cgi/tech/1183396621/

Lisp@UNIX版
ttp://pc11.2ch.net/test/read.cgi/unix/1019926525/

Emacs Lisp 3
ttp://pc11.2ch.net/test/read.cgi/tech/1191875993/

【ヤパーリ】XMLをS式に置換えていくスレ【LISP最強】
ttp://pc11.2ch.net/test/read.cgi/tech/1140006937/

【SICP】計算機プログラムの構造と解釈 Part2
ttp://pc11.2ch.net/test/read.cgi/tech/1203096230/

【普通のやつらの】 Arc Language 0 【上を行け】
ttp://pc11.2ch.net/test/read.cgi/tech/1202098949/
12デフォルトの名無しさん:2008/03/09(日) 10:48:41
tspl抜けてんぞ
13デフォルトの名無しさん:2008/03/10(月) 20:49:50
>>1
14デフォルトの名無しさん:2008/03/10(月) 21:56:35
http://pc11.2ch.net/test/read.cgi/tech/1200237296/998

>define名が無くても出来るってことですね。とは言っても名前空間を汚さない以外に
>何かメリットはないものでしょうか、という疑問が。

その答えは "To Mock a Mockingbird " でどうぞ。
15デフォルトの名無しさん:2008/03/10(月) 21:59:57
Yコンビネータだけじゃなく他の色々なコンビネータがつかえると想像してミレ。
プログラミングの幅が広がると気がつかんか?
16デフォルトの名無しさん:2008/03/10(月) 22:01:48
なんと副作用がないのだがSeasoned Schemerを読まないとご利益は理解できない件。
17デフォルトの名無しさん:2008/03/10(月) 22:02:14
前スレ

>>997
ありがとうございます。
てんこもりですね。損した気分。

>>999
Y-combinator再考してみます。

>>14
実は昨日届いたんです。ウヒヒ。
パズルとかゲームとか得意ではないんですが
読んで見ます。それにしても小さい本ですね。

18デフォルトの名無しさん:2008/03/10(月) 22:06:03
Seasoned Schemer⇒To Mock a Mockingbird
この順序で読むべし。間を空けるとSeasonedを読むのが辛くなる。
19デフォルトの名無しさん:2008/03/10(月) 22:07:02
>>15
コンビネータというからには何かを結びつけて使うんですよね、きっと。
何かの計算結果同士を結びつける。C++のbindみたいな。

>>16
8章までの知識があれば読めるみたいなこと書いてあったんで
難しい9,10章飛ばして突入したら、Y-combinatorが出てきたもんで
慌てて戻った次第です。
20デフォルトの名無しさん:2008/03/10(月) 22:09:25
>>18
なるほど、そうですか。Seasonedは11章から始まってるので
二冊で一冊みたいなもんですね。確かにLittleの内容を前提
としてるので忘れないうちに行ってみます。
21デフォルトの名無しさん:2008/03/10(月) 22:21:45
To Mock a Mockingbird はP73から読み始める。M(Mockingbirdというコンビネータ)がいきなり登場。
こいつがとても重要。P96の "Bluebird and Mockingbird" で最初の秘密が明らかになる。

P128からの "A Gallery of Sage Birds" ではいろいろなYコンビネータ(この本ではΘ)が登場する。
P193から不動点定理とYコンビネータの関係の説明がある。ここからいよいよコンビネータが明かされ始める。

これ以上はネタばれなのでやめておく。お楽しみに。
22デフォルトの名無しさん:2008/03/10(月) 22:28:26
>コンビネータというからには何かを結びつけて使うんですよね、きっと。

そうなのじゃ。結びつきこそが鳥達の住む森を生み出しておる。
集積回路のコンピュータ然り、DNAコンピュータ然り、なのじゃ。
そして、人と人の結びつきもまた然りじゃのう。
君はまだまだ若いから、この意味がわかるかのう?
23デフォルトの名無しさん:2008/03/10(月) 22:39:20
>>21
大変参考になります。
コンビネータという単語が出てこないので?と思ってました。

>>22
右脳が試されてる気が。。
C++のほうが仕様は膨大なのに簡単
に思える今日この頃。
24デフォルトの名無しさん:2008/03/10(月) 22:49:51
>そうなのじゃ。結びつきこそが鳥達の住む森を生み出しておる。

P167のMaster Forestじゃ。

>右脳が試されてる気が。。

読み終わった頃には左脳が試されてると確信する。
そしてプログラムの存在をコンピュータの画面以外でも感じるようになる。
そのときプログラマーとして実世界を相手に仕事をする旅立ちのときがやってくる。
さあ、勇者よ!行くがよい!世界が待っている!
25デフォルトの名無しさん:2008/03/10(月) 22:55:24
たかがコンビネータで本一冊書けるってすげーな
R6RSなんて187ページにぎゅうぎゅう詰めですよ
26デフォルトの名無しさん:2008/03/10(月) 22:56:25
お役立ちリンク:Little Schemer

Daniel P. Friedman
http://www.cs.indiana.edu/~dfried/

Matthias Felleisen
http://www.ccs.neu.edu/home/matthias/

Little Schemerのサポートページ(誤植・問題集など)
http://www.ccs.neu.edu/home/matthias/BTLS/
27デフォルトの名無しさん:2008/03/10(月) 23:01:36
http://pc11.2ch.net/test/read.cgi/tech/1200237296/995
>計算論 高橋正子って予備知識必要?

かなり必要。定理、証明のスタイル。数学書みたいな感じ。
28デフォルトの名無しさん:2008/03/10(月) 23:05:14
>>25
>たかがコンビネータで本一冊書けるってすげーな

書けなかったからパズルと詰め合わせの件。
29デフォルトの名無しさん:2008/03/10(月) 23:09:55
くわしく
30デフォルトの名無しさん:2008/03/10(月) 23:19:32
>>25
コンビネーターはそれなりに研究の蓄積があるから、
さすがに「たかが」ということはないんじゃないかな。

1972年までの主要な結果をまとめた Curry & Feys のコンビネーター本は
全2冊でたしか合計900頁以上あったはず。
31デフォルトの名無しさん:2008/03/10(月) 23:29:11
>>29
全25章のうち、出だしの6章はコンビネータとは関係ない別の話。
「美女と野獣(Lady or Tiger)」と出だしの6章は関係がある。

7章から25章まで読むとチューリング完全とは何かがわかる。
チューリング完全の範囲でコンビネータでプログラムできる、論理を記述できる。
実はこの本、論理を記述できるようになる25章から出だしの6章に戻り論理パズルを解くという循環構造になっている希ガス。
考えすぎか?
32デフォルトの名無しさん:2008/03/10(月) 23:32:25
BarendregtのThe Lambda Calculusは621ページあるな。
33デフォルトの名無しさん:2008/03/10(月) 23:46:54
>>31
ナール、確かに再びこの森に戻ってくるとか言ってたジャマイカ。
34デフォルトの名無しさん:2008/03/10(月) 23:49:18
>>31
ありがとう

>>30
うーん
ぶっちゃけ、言語として見ると「たかが」だと思う。
数学の話になるとLispと関係なくなる感じがする。
35デフォルトの名無しさん:2008/03/10(月) 23:52:21
・グラフリダクションを使った関数型言語の実装
SKIコンビネータ
スーパーコンビネータ
・コンビネータパーザ
Parsec: Haskellのパーザ記述ライブラリ
http://legacy.cs.uu.nl/daan/download/parsec/parsec.html
みたいな応用もあるよ。
スーパーコンビネータはSimon Peyton Johnの論文と書籍が有名。
36デフォルトの名無しさん:2008/03/10(月) 23:58:46
あ、PLTのcombinator-parser書き忘れちゃった。
http://pre.plt-scheme.org/plt/collects/combinator-parser/doc.txt
37デフォルトの名無しさん:2008/03/11(火) 00:04:31
>>34
それは無知すぎる。
形なしラムダ算法はLispやSchemeだし、型付ラムダ算法とかはML系の先取り。
ポリモーフィックラムダ算法はオブジェクト指向だし、遅延ラムダ算法はHaskellみたいなことやってる。
つまりコンビネータとSchemeを効果的に組み合わせるとお手軽にそれらが実現できるハズw
素のSchemeが全てじゃないし、コンビネータは小道具としても強力。
38デフォルトの名無しさん:2008/03/11(火) 00:13:00
>>37
> それは無知すぎる。

なんでそんな興奮してるの?
The Little Schemerで勉強始めたばかりの人に…

39デフォルトの名無しさん:2008/03/11(火) 00:14:44
スーパーコンビネータをググルと?

・ヤマハスーパーコンビネーターエレキSC700・42
・Super Combinator 800(スーパー・コンビネーター) ミニ・スイッチによるフェイズ・アウトを含む13通りのサウンド・バリエーションからネーミングされた
40デフォルトの名無しさん:2008/03/11(火) 00:15:38
愛するものを汚されたと感じたのでは?w
41デフォルトの名無しさん:2008/03/11(火) 00:22:04
                 lambda
                 ____
               _/ \  \_
            ((/___))___\))
              | |!!!  !!| | |!!! !!! !!!| |
              | |;;;; ;;;;| | |;;;; ;;;; ;;;;| |
              | |;;;; ;;;;| | |;;;; ;;;; ;;;;| |
  Λロ二二ロ二Λ二Λ二Λ二Λ二二二二Λ二Λ二Λ二Λ二l
  (^×^∩  ∩(´∀` ) (・∀・ )   ∩(ΦλΦ )(ー人ー )
┌〔〔 〔〔V)  ヽ〔〔 〔〔 つ〔〔 〔〔 つ   ヽ〔〔Э〔〔 つ〔〔 〔〔 つ
(_ノ〈 ||_|  (_ノ〈 ||_|(_ノ〈 ||_|    (_ノ〈 ||_|(_ノ〈 ||_|
   (__)     (__)   (__)       (__)   (__)
42デフォルトの名無しさん:2008/03/11(火) 00:23:11
   ∧∧
   /⌒ヽ)
  i三 ∪ たかが....
 〜三 |
  (/~∪
  三三
 三三
三三 
43デフォルトの名無しさん:2008/03/11(火) 00:25:46
             .,..-──- 、               ニ/ニ
            r '´. : : : : : : : : : :ヽ               {_
  ー亠ー     /.: : : : : : : : : : : : : :: ヽ                ヽ
   二      ,!::: : : : : ,-…-…-ミ:: : :',              ⌒)
   [ ̄]    {:: : : : : :i  ,;ノ;´:`ゞ、i: : :.:}   ∩─ー、       /
    ̄     .{:: : : : : :|  ェェ;;;;;;;ェェ|: : : } / ●   `ヽ    ―ー
.     つ      { : : : : ::|    ,.、 .| : : :;!/  ( ●  ● |つ   ,-亠ー
   __     ヾ: :: : :i   r‐-ニ┐| : : :ノ|  /(入__ノ  ミ   / 廿
    /       ゞイ!   ヽ二゙ノ イゞ,.‐rニ(_/  ∪ノ  /  .又
   (_,      / ̄ \`ー一'/ - -l\___ノ_
   __       / /⌒ヽ \//ヽ  二}    \_
   _/     /  / /  \//\ ヽ/      :、
  (ノ ̄`メ、  |  |/  / `´ヽ \/i        \
   __    |  \/  /lヽ ヽ /.|       i'  i
    /    |    \/ /| ヽ /  |       |  |
   ´⌒)    |     \/ |  /   |       |  |
    -'      |      `ー-ノ i    |       |  |
44デフォルトの名無しさん:2008/03/11(火) 00:27:25
     ll     ll
     l| -‐‐- |l
    ,イ」_  |ヽ_| l、
   /└-.二| ヽ,ゝl
   l   ,.-ー\/. 、l
  |  /.__';_..ン、    ビ〜ィ〜ム かがーやーく♪
  / /<二>  <二>!゙、
 //--─'( _●_)`ーミヘ    フラッシュバックに〜ぃ♪
<-''彡、   |∪|  、` ̄ ̄ヽ
 / __  ヽノ   Y ̄)  | ヤツのかげーー♪
 (___)       Y_ノ
      \      |
       |  /\ \
       | /    )  )
       ∪    (  \
             \_)

         _人人人人人人人人人人人人人人人_
           >  たかが♪  たかが♪  たかが♪  <
           ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄
     ll     ll          ll     ll          ll     ll
     l| -‐‐- |l  __     l| -‐‐- |l  __     l| -‐‐- |l  __
    ,イ」_  |ヽ_| l、〈〈〈〈 ヽ  ,イ」_  |ヽ_| l、〈〈〈〈 ヽ  ,イ」_  |ヽ_| l、〈〈〈〈 ヽ
   /└-.二| ヽ,ゝl.〈⊃  } /└-.二| ヽ,ゝl.〈⊃  }./└-.二| ヽ,ゝl.〈⊃  }
   l   ,.-ー\/. 、l |   |. l   ,.-ー\/. 、l |   | l   ,.-ー\/. 、l |   |
  |  /.__';_..ン、!   ! |  /.__';_..ン、!   !|  /.__';_..ン、!   !
  / /<二>  <二>!゙、 // /<二>  <二>!゙、 // /<二>  <二>!゙、 /
 //--─'( _●_)`ーミ /.//--─'( _●_)`ーミ / //--─'( _●_)`ーミ /
<-''彡、   |∪|  / <-''彡、   |∪|  /  <-''彡、   |∪|  /
 / __  ヽノ /     / __  ヽノ /    / __  ヽノ /
 (___)   /     (___)   /     (___)   /
45デフォルトの名無しさん:2008/03/11(火) 00:28:23
              -― ̄ ̄ ` ―--  _
          , ´         ,    ~  ̄、"ー 、
        _/          / ,r    _   ヽ ノ
       , ´           / /    ●   i"
    ,/   ,|           / / _i⌒ l| i  |
   と,-‐ ´ ̄          / / (⊂ ● j'__   |
  (´__   、       / /    ̄!,__,u●   |
       ̄ ̄`ヾ_     し       u l| i /ヽ、
          ,_  \           ノ(`'__ノ
        (__  ̄~" __ , --‐一~⊂  ⊃_
           ̄ ̄ ̄      ⊂ ̄    __⊃
                   ⊂_____⊃
46デフォルトの名無しさん:2008/03/11(火) 00:28:28
図星だったぽい・・・
47デフォルトの名無しさん:2008/03/11(火) 00:29:01
何このスレ(AA略

>>39
この辺でどうよ?
http://www.cse.iitb.ac.in/~as/fpcourse/lambda-lifting.ps.gz
http://citeseer.ist.psu.edu/cache/papers/cs/760/ftp:zSzzSzftp.dcs.gla.ac.ukzSzpubzSzglasgow-fpzSzauthorszSzJim_MattsonzSzspec-eval-thesis.pdf/mattson93effective.pdf
プログラムを独自コンビネータの組み合わせに変換します。
その自由変数消去のアルゴリズムがlambda-lifting。
48デフォルトの名無しさん:2008/03/11(火) 00:33:38
>>27
サンクス
ですよね。立ち読みした限りじゃ、漏れにはかなりむずい印象。
計算論入門(渡辺米崎)はやさしいですか?
まだリトル読み終わらない厨房なのですが、、、
モッキンバードは英語だから代わりに何か読みたいなと思ってます。
49デフォルトの名無しさん:2008/03/11(火) 01:03:44
>>48
去年でたCommon Lisp入門とか読めば?
後ろの方にラムダ算法入門みたいな章があったよ。
さわりだけでいいんでしょ?
チャーチロッサーの定理とかβ簡約とか出て来るしいいんジャマイカ?
50デフォルトの名無しさん:2008/03/11(火) 01:15:09
>>49
とりあえず見てみます。
あれ読んで理解したら次に計算論入門か計算論読めますか?
51デフォルトの名無しさん:2008/03/11(火) 01:23:43
>>48
その本は知らないんだけど、ラムダ計算とその意味論に関してだったら、
横内寛文『プログラム意味論』が丁寧かつわかりやすくてよかったですよ。

ただ、このあたりの内容について解説している本はどうしても数学書のスタイル
になってしまうので、そういうのにあまりなじみが無いのなら、小野寛晰『情報代数』
あたりをざっと読んでみるのがいいかもしれないです。この本は、理論計算機科学の
文献で使われる基本的な数学的道具立てについて一通り解説してあって、
なかなか便利です。
52デフォルトの名無しさん:2008/03/11(火) 01:24:47
軽装で登山は出来ない。予備知識に何が必要かわかったら読むべき本も自ずと出てくる。
53デフォルトの名無しさん:2008/03/11(火) 01:28:17
実際的なことが好みのようなので、↓にしておけば?
井田哲雄「プログラミング言語の新潮流」
http://www.amazon.co.jp/dp/4320023773/

同じ著者で
「計算モデル論入門ーチューリング機械からラムダ計算へ」
というのもあります。これはすごく薄くて簡単な紹介です。
54デフォルトの名無しさん:2008/03/11(火) 02:01:16
>>51,53
どうもありがとう。
とりあえず探して見てみます。
初心者独学なんで情報代数の本は役立ちそうですね。
モッキンバードに書か
55デフォルトの名無しさん:2008/03/11(火) 02:02:57
途切れた。
モッキンバードに書かれてるのと同程度の知識が得られればいいな、
といういい加減な目標です。
56デフォルトの名無しさん:2008/03/11(火) 04:05:39
お前らあんまり難しいことばかり話してないで
ttp://d.hatena.ne.jp/koguro/20080309/1205012807
でも観て笑ってろよ
57デフォルトの名無しさん:2008/03/11(火) 05:51:57
glintワラタw
あれいいなぁ
58デフォルトの名無しさん:2008/03/11(火) 10:59:13
初心者・独学を強調しすぎる奴って、一生そのままだよな。
いつまでたっても助けてもらわないと一歩も前に進めない奴。
59デフォルトの名無しさん:2008/03/11(火) 11:04:54
人と議論したほうが伸びる。
60デフォルトの名無しさん:2008/03/11(火) 11:07:14
この業界、いるんだよな>>58みたいな偏屈な奴。
61デフォルトの名無しさん:2008/03/11(火) 11:07:59
そりゃそうだ
62デフォルトの名無しさん:2008/03/11(火) 11:15:41
          ____
       / \  /\ キリッ
.     / (ー)  (ー)\
    /   ⌒(__人__)⌒ \    
    |      |r┬-|    |     初心者・独学を強調しすぎる奴って、一生そのままだよな。 
     \     `ー'´   /    いつまでたっても助けてもらわないと一歩も前に進めない奴。   
    ノ            \
  /´               ヽ
 |    l              \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))


          ____
        /_ノ  ヽ、_\
 ミ ミ ミ  o゚((●)) ((●))゚o      ミ ミ ミ
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\   /⌒)⌒)⌒)
| / / /     |r┬-|    | (⌒)/ / / //  だっておwwwwwwwwwwwwwwwwwww
| :::::::::::(⌒)    | |  |   /  ゝ  :::::::::::/
|     ノ     | |  |   \  /  )  /
ヽ    /     `ー'´      ヽ /    /     バ
 |    |   l||l 从人 l||l      l||l 从人 l||l  バ   ン
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、    ン
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))
63デフォルトの名無しさん:2008/03/11(火) 11:19:14
>>58
             / ̄ ̄^ヽ                  / ̄ ̄^ヽ
             l      l       ____        l      l
       _   ,--、l       ノ .     /_ノ  ヽ、_\     丶      l ,--、  _
   ,--、_ノ:: `ー'::   、ミー---‐,,l     o゚((●)) ((●))゚o     l,,‐---ー彡,  ::`ー'  ::ゝ_,--、
  ,/   :::         i ̄ ̄  | .  /::::::⌒(__人__)⌒::::: \    |   ̄ ̄i        :::   ヽ,
/           l:::    l:::   ll   |     |r┬-|     |    ll    :::l   :::l         ^ヽ
l   l .   l     !::    |:::   l   |     | |  |     |    l    :::|   ::!   l    l   l
|   l   l     |::    l:    l .  |     | |  |     |   l     ::l  :::|    l   :l   |
|   l .   }    l:::::,r-----   l  \    | |  |    /   l  -----、_::::::l    }   l   |
ヽ  :l::::   ト:;;;;;;;;;/-/__...........  /.        | |  |         ヽ  ...........__ノヽ;;;;;;;ノ  ::::l  /
                           | |  |
                           | |  |
                            `ー'´
64デフォルトの名無しさん:2008/03/11(火) 11:23:09
         / ̄ ̄ ̄ \
      /   :::::\:::/\  
     /    。<一>:::::<ー>。   <<58
     |    .:::。゚~(__人__)~゚j      
     \、   ゜ ` ⌒´,;/゜
    /  ⌒ヽ゚  '"'"´(;゚ 。  
   / ,_ \ \/\ \
    と___)_ヽ_つ_;_ヾ_つ.;.
65デフォルトの名無しさん:2008/03/11(火) 11:27:13
もうAAは勘弁してくださいよw
Steele先生のHistory of Schemeあげるから。
http://research.sun.com/projects/plrg/JAOO-SchemeHistory-2006public.pdf
Lisp, Scheme分かる人はp.18から読んでください。
66デフォルトの名無しさん:2008/03/11(火) 11:44:04
わたし女だけどスレッドすごく荒れちゃって読みにくいから。
67デフォルトの名無しさん:2008/03/11(火) 11:48:22
↓ここでマンコのAA登場↓
68デフォルトの名無しさん:2008/03/11(火) 11:49:25
(i)
=> #<Manko>
69デフォルトの名無しさん:2008/03/11(火) 11:59:39
>>66
schemeやる女
物理科に来る女のように変人
70デフォルトの名無しさん:2008/03/11(火) 12:13:32
>>69
でも意外と多い
71デフォルトの名無しさん:2008/03/11(火) 12:39:32
>>70
キモイ率95%
72デフォルトの名無しさん:2008/03/11(火) 13:22:02
男のキモい率とそんな変わらんな
73デフォルトの名無しさん:2008/03/11(火) 13:48:49
ブス率高し
74デフォルトの名無しさん:2008/03/11(火) 14:07:32
>>58
すごいな!
2chの自称初心者を全員追跡調査したんだ?
一人一人進歩無しに死んだところまでちゃんと確かめたんだよな?
7558:2008/03/11(火) 14:14:33
ええ、確かめましたが何か?^^
7658:2008/03/11(火) 14:16:11
>74
知るかバーか!!てめえで探せっての!!変態野郎が!!
77デフォルトの名無しさん:2008/03/11(火) 14:17:03
さすがLisperだな。神レベルだわ。
78デフォルトの名無しさん:2008/03/11(火) 14:21:18
                  /  ̄ ̄ ̄ ̄\
                 /          ヽ
                 /           ヽ
                | 人_____________      |
                /  ─   ─ |     .|   それがLisperクオリティ
                  /│(●)  (●) /   /|
     ____________    / .│ (__人__) ./  / |
     \〜〜 /   |__  \ `⌒ ´ /__/___ ノ
      \ /___       (\      /  )―――
      ( つ(__/ \      (  |   /   )
      (__フ|    \  / (  |  /    )
      ⊂―||―、   | /
79デフォルトの名無しさん:2008/03/11(火) 14:26:39
             r y、
             / / }
           _/ノ.. /、
           /  <   }
      ry、     {k_ _/`;,  ノノ パンパン
    / / }      ;'     `i、 
   _/ノ../、   _/ 入/ /   `ヽ, ノノ
  / r;ァ  }''i" ̄.   ̄r'_ノ"'ヽ.i   ) ―☆
 {k_ _/,,.'  ;.  :.      l、  ノ  
    \ `  、  ,i.    .:, :, ' / / \
     ,;ゝr;,;_二∠r;,_ェ=-ー'" r,_,/   ☆
80デフォルトの名無しさん:2008/03/11(火) 14:29:23
    セックスゥ〜 ∧_∧ ハァハァ…
          (´Д` ;)
            ( ̄ ̄ ̄ ̄┴-
             |  (    *  ;)
            /  /   ∧   \
            / /   / U\   \                  キモイヨー
           / / ( ̄)  | |\  ( ̄)          ((( )))  
          / ( ノ  (   | |  \ ノ (       〜  (;´Д`)
         ⊂- ┘(    ) └--┘ (    )     〜   / つ1 _つ
             UUUU      UUUU         人  Y
                                   し'(_)
81デフォルトの名無しさん:2008/03/11(火) 14:42:09
>>58みたいに荒らしになる奴は放っておけよ
82Z武:2008/03/11(火) 14:44:18
             ,.,.,.,.,.,.,.,.,__
           ,;f::::::::::::::::::::::::::ヽ:
           i/'" ̄ ̄ヾ:::::::::::i:
           |,,,,_ ,,,,,,_  |::::::::|:
           (。);( ゚)==r─、|: グフィ
           { (__..::   / ノ:
.           ', エエエエフ ノ:
    / / }      !___/ `i、
   _/ノ../、   _/ 入/ /   `ヽ,:
  / r;ァ  }''i" ̄.   ̄r'_ノ"'ヽ.i   ):
 {k_ _/,,.'  ;.  :.      l、  ノ:  ドクドク
    \ `  、  ,i.    .:, :, ' / /:
     ,;ゝr;,;_二∠r;,_ェ=-ー'" r,_,/:
8358:2008/03/11(火) 14:45:18
   ∩___∩
   | ノ      ヽ/⌒) あばばばばばば
  /⌒) (゚)   (゚) | .|
 / /   ( _●_)  ミ/    ∩―−、
.(  ヽ  |∪|  /    / (゚) 、_ `ヽ
 \    ヽノ /      /  ( ●  (゚) |つ
  /      /      | /(入__ノ   ミ   あばばっあびゃばびゃばば
 |       /       、 (_/    ノ
 |  /\ \       \___ ノ゙ ─ー
 | /    )  )       \       _
 ∪    (  \        \     \
       \_)
84デフォルトの名無しさん:2008/03/11(火) 19:31:25
85デフォルトの名無しさん:2008/03/11(火) 19:44:50
ttp://mamono.2ch.net/test/read.cgi/newsplus/1205223290/l50
やる夫がcommonlisperになりschemeをdisるようになるまでを誰か作ってくれ
8658:2008/03/11(火) 20:00:51
>>85
    ∩___∩
  ≡ | ノ      ヽ/⌒))=
-=≡/⌒) (゜)   (゜) | .| ≡ 無理でした
 ≡/ /   ( _●_)  ミ/ )≡=
≡((  ヽ  |∪|  /)≡=    :,∴・゜・゜・:,∴・゜・゜・
 ≡\    ヽノ /=   :,∴・゜・・∴~・:・∴・・・
  ≡/      /  ,.:∴~・:,゜・~・:,゜・ ,゜・~・:,゜・・∴・゜゜・
=≡(|   _つ~~~‘∴・゜゜・・∴~・:,゜・・∴・゜゜・∴~゜゜゜
, ≡|  /UJ\ \≡     ~・:,゜・~・:,゜・ ,゜・~・:,゜・・∴・゜゜・
=≡(| /     )  ))=        ・゜ ・・∴~・:・∴∴~・:・∴・
  =(∪     (  \≡         ゜∴・゜・・∴~・:・∴
          \_))≡=
87デフォルトの名無しさん:2008/03/11(火) 20:39:29
>>85
「やっぱりそれなりにLisp/Schemeの背景について知らないと
面白いAAにもならないから難しいのでは?
ただ単にクマのテンプレ貼られてもなあ」
というのは議論の余地のない given な事実として淀みなく会話が流れる、というのが一般的です。
88デフォルトの名無しさん:2008/03/11(火) 20:44:11
零細企業に勤めてる人いる?いないか、ハイレベル多そうだからな。
89デフォルトの名無しさん:2008/03/11(火) 20:49:41
いや、大企業のばりばりLisperの方がレアなんじゃないか?www
90デフォルトの名無しさん:2008/03/11(火) 21:11:14
         / ̄\
        |     |
         \_/
          |
       /  ̄  ̄ \
     /  \ /  \       >>87
    /   ⌒   ⌒   \      よくぞ逝ってくれた
    |    (__人__)     |      褒美としてLispをAAで語る権利をやる
    \    ` ⌒´    /   ☆
    /ヽ、--ー、__,-‐´ \─/
   / >   ヽ▼●▼<\  ||ー、.
  / ヽ、   \ i |。| |/  ヽ (ニ、`ヽ.
 .l   ヽ     l |。| | r-、y `ニ  ノ \
 l     |    |ー─ |  ̄ l   `~ヽ_ノ____
    / ̄ ̄ ̄ ̄ヽ-'ヽ--'  /  L i s p   /|
   .| ̄ ̄ ̄ ̄ ̄ ̄|/|    | ̄ ̄ ̄ ̄ ̄ ̄|/| ______
/ ̄L i s p /|  ̄|__」/_ L i s p   /| ̄|__,」___    /|
| ̄ ̄ ̄ ̄ ̄|/L i s p  ̄/ ̄ ̄ ̄ ̄|/ L i s p /|  / .|
| ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄|/l ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄|/| /
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
91デフォルトの名無しさん:2008/03/11(火) 21:14:34
大企業ならまだLisperいるんじゃない? 新日鉄とか。
92デフォルトの名無しさん:2008/03/11(火) 21:28:22
リクナビにLisper募集してる会社がのってるな
93デフォルトの名無しさん:2008/03/11(火) 21:29:49
零細企業とか大企業とかいう発想が古くさい
94デフォルトの名無しさん:2008/03/11(火) 21:41:18
大企業でLispというと竹内先生の古巣か?
95デフォルトの名無しさん:2008/03/11(火) 21:45:44
公社崩れの会社だな
96前スレ846:2008/03/11(火) 21:52:40
例のGauche本、Oreillyに直接注文してたら今日もう着いた。
(http://www.oreilly.co.jp/books/9784873113487/)
3/14発売予定じゃなかったっけ?
先走ったのはO'reilly Japanか佐川急便か?

まあ、早いぶんには良いんだけど(読むのはノンビリw)。
97デフォルトの名無しさん:2008/03/11(火) 22:16:28
9896:2008/03/11(火) 22:18:56
>97
さっそくサポート有難うございます。
99デフォルトの名無しさん:2008/03/11(火) 22:21:23
>>91
そこにはいないハズ。
100デフォルトの名無しさん:2008/03/11(火) 23:02:06
>>96
マジかよ。アマゾンにしちまったよ。
101デフォルトの名無しさん:2008/03/11(火) 23:11:07
>96
奥付張り紙してある?
10296:2008/03/12(水) 00:03:27
>100
フッフッフ、300円余分に支払ったおかげだ(でも読むのはゆっくり)。

>101
奥付に張り紙って何だ?と思ったら確かに貼ってあったよ。
「プログラミングGauche」と書かれたテープみたいなのが。
(透かしてみたら下にはどうも「Gaucheプログラミング」と
印刷されてるみたいw)
103デフォルトの名無しさん:2008/03/12(水) 00:06:43
The Little Schemerの
入れ子になったlambdaの意味が分かりません

(define multirember-f
(lambda (test?)
(lambda (a lat)
(cond
((null? lat) (quote()))
((test? a (car lat))
((multirember-f test?) a
(cdr lat)))
(else (cons (car lat)
((cons (car lat)
((multirember-f test?) a
(cdr lat))))))))

 調べてみてブロックというのがこの例なのかなと思っているのですが、
なぜlambdaが二つ必要なのか理解できません
どなたかご教示願います
104デフォルトの名無しさん:2008/03/12(水) 00:15:10
>102
それは当たりですね ♥

…漏れも欲しくなってきた、ミスプリント版w
105102:2008/03/12(水) 00:27:49
>104
これって当たりなのw?
106デフォルトの名無しさん:2008/03/12(水) 00:45:02
>>103
multirember-fは引数(この場合の引数は関数test?)を一つとり
関数を返す関数。戻り値の関数は、引数を二つ(aとlat)とる関数。
P127の上から5番目のパラグラフを復習。
107デフォルトの名無しさん:2008/03/12(水) 02:03:14
まずはご苦労。>gauche本の中の人達。

色々ぬかりない感じがするんだが、良くも悪くも
なんでネット公開止めたん?

それからラムダブックスのサイトから買えるようにしてくれ。
そうでなかったら価格表示やめれ。
108デフォルトの名無しさん:2008/03/12(水) 04:34:52
黒田氏がR6RSについてコメントしてますね。
ttp://cl-www.msi.co.jp/solutions/knowledge/lisp-world/articles/three-dogmas-of-scheme

その記事の表示的意味論うんぬんの部分に対する住井さんのコメント。
ttp://d.hatena.ne.jp/sumii/20080311/p2
109デフォルトの名無しさん:2008/03/12(水) 05:02:01
黒板は出てこないのか。
110デフォルトの名無しさん:2008/03/12(水) 05:52:19
Amazonを使ってる方へ

Amazonのほしい物リストで、個人情報(氏名等)がもれる場合があります。
ほしい物リスト(ウィッシュリスト)が未登録ならば、問題ありません。
しかし、自分のアカウントを調べた方が良いです。
http://1505953.blog76.fc2.com/blog-entry-340.html

祭り中?
【祭】Amazonウィッシュリストで個人情報ダダ漏れ中★6
http://namidame.2ch.net/test/read.cgi/news/1205262805/

111デフォルトの名無しさん:2008/03/12(水) 06:31:15
>>107
> なんでネット公開止めたん?
契約書に「公開するな」的な一文がある。
オーム社なら(On Lispのように)公開出来たかも知れん

> それからラムダブックスのサイトから買えるようにしてくれ。
> そうでなかったら価格表示やめれ。
中の人に言ってみる
112デフォルトの名無しさん:2008/03/12(水) 10:09:21
>>108
最初の文書酷いなあ。
113デフォルトの名無しさん:2008/03/12(水) 10:32:27
むしろ最後の方の議論のスタイル云々が酷い
114デフォルトの名無しさん:2008/03/12(水) 11:21:38
仕様書を書かずにコードを書くスタイルを叩いてるのはいつものことでしょ
115デフォルトの名無しさん:2008/03/12(水) 12:10:58
>>108
突っ込みどころは多い(映画館の喩えはいかがなものかと思う)が、言いたいことは理解できる。
116デフォルトの名無しさん:2008/03/12(水) 12:15:18
>>107
想像だけど、ネットで公開できなくなるのは本になることの代償じゃないかな。
出版社はボランティアじゃないからね。

個人的には、ネットで公開できなくなるマイナスより、本になるプラスのほうが
勝ってると思う。もちろん、そうは思わない人も多いと思うけど。

どちらにするかは、権利を持っている人が勝手に決めればいいことだ。
117デフォルトの名無しさん:2008/03/12(水) 13:31:35
正確には著者と出版社が話し合って決めることだな
118デフォルトの名無しさん:2008/03/12(水) 14:44:30
>102
献本用に刷ったのにミスプリがあったらしい。
先日のgauche.nightで販売されたのもコレ。
内容は市販されるものと同一のはず。
119デフォルトの名無しさん:2008/03/12(水) 16:06:26
>>118
ブベベベベ
120デフォルトの名無しさん:2008/03/12(水) 16:31:31
Little読んだ程度の漏れでも読めるかな。
121デフォルトの名無しさん:2008/03/12(水) 16:46:26
読むな。書け。
122デフォルトの名無しさん:2008/03/12(水) 17:40:42
>>116
そりゃ、自分がその本を持っている前提ならそうかもしれないけど、
本が入手不可能でネットにもリソースなかったりしたら、ものすごく困る。
123デフォルトの名無しさん:2008/03/12(水) 18:24:15
>>122
「本が入手不可能」って状況がよくわからんけど、絶版になればふつう版権は
著者に戻される。著者が望めば公開可能。
124デフォルトの名無しさん:2008/03/12(水) 18:36:01
理屈ではそうなんだが、在庫なし再販未定≠絶版なのが面倒なところ。

法律では「出版権の消滅」って概念を定めてて、しかるべき場合には
しかるべき手続きを踏めば出版権を消滅させられることになってるけど。
125デフォルトの名無しさん:2008/03/12(水) 18:38:24
注)ここは日本です。
126デフォルトの名無しさん:2008/03/12(水) 22:57:00
glintオモスレー
127デフォルトの名無しさん:2008/03/12(水) 23:06:38
letrec
これは何と読めばいいですか?
レトレックでOK?
128デフォルトの名無しさん:2008/03/12(水) 23:52:03
129デフォルトの名無しさん:2008/03/13(木) 00:01:13
ども
130デフォルトの名無しさん:2008/03/13(木) 00:08:30
>>127-128
へぇ。letrecっておけって読むんだ。なんか由来のある当て字?
131デフォルトの名無しさん:2008/03/13(木) 00:10:00
いや、桶をレトレックって読むんだよ。
132デフォルトの名無しさん:2008/03/13(木) 00:13:30
なぜか「バルカン星人を舐めるなよ」と書きたくてらまらない。
133デフォルトの名無しさん:2008/03/13(木) 00:40:37
ふぉっふぉっふぉ
134107:2008/03/13(木) 01:09:53
ジュンク堂いったひといる?
135デフォルトの名無しさん:2008/03/13(木) 01:10:38
↑名前欄誤爆
136デフォルトの名無しさん:2008/03/13(木) 01:12:17
>>133
それバルタン
137デフォルトの名無しさん:2008/03/13(木) 01:20:35
> 誤爆
それバクダン
138デフォルトの名無しさん:2008/03/13(木) 01:27:13
|
|
|⌒彡
|冫、)
|` / ・・・
| /
|/
|
139デフォルトの名無しさん:2008/03/13(木) 01:28:13
|
|
|
| 彡サッ
|
|
|
|
140デフォルトの名無しさん:2008/03/13(木) 01:32:23
ものまね鳥ゲット
141デフォルトの名無しさん:2008/03/13(木) 01:32:25
店頭には並んでるの?
142デフォルトの名無しさん:2008/03/13(木) 01:33:33
並んでないよ
143デフォルトの名無しさん:2008/03/13(木) 01:36:27
オライリー直販だけか
まだseasonedやってるからいいけど
144デフォルトの名無しさん:2008/03/13(木) 17:01:25
Karettaの立ち読み版って
書籍発売日の明日以降はどうなるんでしょう?
書籍と立ち読み版はガラっと違うらしいし
存続でしょうか?
145デフォルトの名無しさん:2008/03/13(木) 18:11:15
Seasoned Schemerで未知の?キーワードletccなるものが出てきた
のですが、Dr SchemeというかRS5Sでは定義されていないキーワード
らしく、どう続けていけばよいか迷っています。これは処理系によって
は使えるキーワードなんでしょうか?Dr Schemeに慣れてしまったため
、これを使い進めて行きたいのですが、ライブラリ?などで対応方法
はありますでしょうか?
146デフォルトの名無しさん:2008/03/13(木) 18:15:35
147デフォルトの名無しさん:2008/03/13(木) 18:21:11
>>145
call/cc
148デフォルトの名無しさん:2008/03/13(木) 18:23:17
call/cc = call-with-curent-continuation

letcc
149デフォルトの名無しさん:2008/03/13(木) 18:25:38
× call-with-curent-continuation

○ call-with-current-continuation
150デフォルトの名無しさん:2008/03/13(木) 18:28:22
(define call/cc call-with-current-continuation)
151デフォルトの名無しさん:2008/03/13(木) 18:38:15
(define letcc call-with-current-continuation)
152デフォルトの名無しさん:2008/03/13(木) 18:39:49
>>146
ありがとうございます。そこに記載されているものを取り入れたら
動きました。ただ何のことやら分かりません。
call-with-current-continuation というキーワードが寿命を管理?する
みたいですが。

>>147
>>148
>>149
>>150
DrSchemeでもcall/ccというのはcall-with-current-continuationとしてdefine
されていて使えるみたいです。
>>146さんに教えていただいたソースのcall-with-current-continuation
が重要なキーワードみたいです。

今はよ本読みだけで手一杯なのでletccを道具として使います。
153デフォルトの名無しさん:2008/03/13(木) 18:40:30
もっとちゃんとしたければ

(define-syntax letcc
(syntax-rules ()
((letcc var . body)
(call-with-current-continuation
(lambda (var) . body)))))
(define-syntax try
(syntax-rules ()
((try var a . b)
(letcc success
(letcc var (success a)) . b))))
154デフォルトの名無しさん:2008/03/13(木) 18:57:27
>>153
これらのキーワードは環境設定か何かを行うときに使うものですか?
Seasoned Schemerでは唐突にletccが出てきて、その定義も示すことなく
(call-with-current-continuation については若干登場してますが)
使用しているので、昔は当たり前のように使われていたんでしょうか?

define-syntaxという語のとおりシンタックス(キーワード)の定義に
使うためのものだとは察しますが。おいおい勉強してみます。
155デフォルトの名無しさん:2008/03/13(木) 19:05:17
156デフォルトの名無しさん:2008/03/13(木) 19:27:43
継続とマクロのないSchemeは癒し系
157デフォルトの名無しさん:2008/03/13(木) 21:06:09
dssslのことか!
158デフォルトの名無しさん:2008/03/13(木) 22:20:21
>>155
モテカワ愛されλ
159デフォルトの名無しさん:2008/03/13(木) 22:20:52
>>144
特に閉鎖する予定はないですよ
160デフォルトの名無しさん:2008/03/13(木) 22:52:54
>>159
よかったぁ!
じゃあ107が書いてる「ネット公開止めた」書籍って何ですか?

(もちろんヌクヌク本は購入済み、本日発送メールがきました)
161デフォルトの名無しさん:2008/03/13(木) 23:28:17
>>160
去年の5月に再構成して、今出てる書籍(フムフム本)と同じ構成になった。

 公開版(立ち読み版)→再構成版(非公開)

再構成版は公開版からforkしたもの。
162デフォルトの名無しさん:2008/03/14(金) 01:39:37
163デフォルトの名無しさん:2008/03/14(金) 01:40:08
164デフォルトの名無しさん:2008/03/14(金) 01:54:12
黒板バロスw
165デフォルトの名無しさん:2008/03/14(金) 02:52:31
なるほど。継続という難しい概念があるんですね。
166デフォルトの名無しさん:2008/03/14(金) 03:04:04
継続も要するにλだから構える必要はないと思うよ。
167デフォルトの名無しさん:2008/03/14(金) 03:15:31
ググって色々読んだんですが、まだまだ悩む必要
ありそうです。概念が初めてなので慣れが必要ですね。
早くGauche本到着しないかな。
168デフォルトの名無しさん:2008/03/14(金) 07:16:33
継続て唯のプログラムカウンタですか?
プログラムカウンタを変数に代入できるって何が嬉しいんだろ
169デフォルトの名無しさん:2008/03/14(金) 08:13:17
いいえ違います。
関数fから呼ばれた関数hも
関数gから呼ばれた関数hも
同じプログラムカウンタを持ちますが
違う継続を持ちます。
170デフォルトの名無しさん:2008/03/14(金) 08:28:41
アドレスだったらわかるがプログラムカウンタって表現はちょっと違和感。
171デフォルトの名無しさん:2008/03/14(金) 08:30:37
プログラムカウンタだけじゃなくて関数コールスタックの中身も全部保存するようなもんだ
172デフォルトの名無しさん:2008/03/14(金) 08:44:45
ゲームのセーブ・ロードが、未だにイメージの基本になってるな、俺の場合。

Schemeの継続はさしずめ、「戦士がスライムAを倒して、これから魔法使いがスライムBにメラを唱える」
という戦闘シーンのど真ん中ですらセーブできるRPGみたいなもんだ、とかそんな風に。
173デフォルトの名無しさん:2008/03/14(金) 09:03:17
ただ値が保存されるのではなくて
束縛が保存されるだけだから
ロードした直後に開ける宝箱の中身は違うかもしれない
174デフォルトの名無しさん:2008/03/14(金) 11:11:41
>>168
既存の概念に還元して、
新た強い概念を理解しようとする癖は直した方がいいよ。
そうしていると抽象的な思考がなかなか身に付かないから。
175デフォルトの名無しさん:2008/03/14(金) 11:34:48
プログラムカウンタじゃなかったらなんなのよ
176デフォルトの名無しさん:2008/03/14(金) 11:35:57
人生…かな?
177デフォルトの名無しさん:2008/03/14(金) 11:59:38
いや、大いなるナニかだよ…
178デフォルトの名無しさん:2008/03/14(金) 12:11:21
継続は継続だ
とりあえず「なんでも継続」を嫁

強いて言うならプログラムカウンタというよりはコンテキストというか...
179デフォルトの名無しさん:2008/03/14(金) 12:17:07
>なんでも継続
setjmpに還元してるけど、いいの?
180デフォルトの名無しさん:2008/03/14(金) 12:27:38
ちゃんと読んだ?

setjmpのようなものだが、どう違うかもちゃんと書いてあったように
思うけど。
181デフォルトの名無しさん:2008/03/14(金) 12:38:18
Cで言うsetjmp/longjmpとか言い出す解説が一番困るよな。
182デフォルトの名無しさん:2008/03/14(金) 14:15:08
固有値分解や特異値分解を行うプログラムを自分で組むのめんどくさいから
どこかに落ちてないか探したら
GSL for Lisp
とかいうのみつけた。使ってる人は結構いるのでしょうか?


183デフォルトの名無しさん:2008/03/14(金) 14:31:15
>>182
Maxima

ところで cl で規模が大きめのベンチマークって何かある?
tak じゃない奴希望。
184デフォルトの名無しさん:2008/03/14(金) 17:37:36
185デフォルトの名無しさん:2008/03/14(金) 17:54:39
Scheme好きはJazzが好きな奴が多いと思う。
186デフォルトの名無しさん:2008/03/14(金) 18:25:53
微妙なミュージシャンを挙げると「そんなものはジャズじゃない」とかいって怒られそう。
187デフォルトの名無しさん:2008/03/14(金) 19:22:59
プログラミングGauche今日発売だと思って本屋いったら
どこも近日入荷予定だったorz
188デフォルトの名無しさん:2008/03/14(金) 19:30:41
何故ジャズ?
Schemerならプログレだろ?
189デフォルトの名無しさん:2008/03/14(金) 20:19:07
アセンブラはバッハ(バロック)

レンガ積むみたいに端から積んでく感じがいいよね
190デフォルトの名無しさん:2008/03/14(金) 20:26:33
SchemerはKeith Jarrett solo か Bill Evansだ。
191デフォルトの名無しさん:2008/03/14(金) 21:04:05
Cとかで再帰関数書いたときに、ローカル変数確保するスタック領域が足りなくなって、
スタックオーバーフローとかで止まる場合があるじゃないですか。
Schemeの継続ってローカル変数の確保以上にリソースを喰いそうなんですが、
継続のための領域もあふれたりすること、あるんですか?
すごく阿呆な質問だったらすみません…
192デフォルトの名無しさん:2008/03/14(金) 21:13:41
どんな言語でも記憶領域あふれさせるのは簡単だよ。
問題なのは継続が必要な時に十分に効率的かどうかって事。
けどそれ以前に継続についてよく学んでから考えてはどう?
知識のない状態で、いきなり効率ばかり考えるくせがあると、
単純具象バカになりやすいから。
193デフォルトの名無しさん:2008/03/14(金) 21:39:07
Common Lispは豪華絢爛なイタリアオペラってとこか
194デフォルトの名無しさん:2008/03/14(金) 21:43:28
>>191
不要な継続を後生大事にとっておけばそうなる可能性はある。
そうでない限りGCがなんとかしてくれるであろう。
195191:2008/03/14(金) 22:12:54
>>192,193
ありがとうございます。
どちらかと抽象ばっかり考える癖があるので、ちょっと実装に興味を持っているのです。
でももっとちゃんと理解してからにします。
196デフォルトの名無しさん:2008/03/14(金) 22:33:36
とりあえず
質問する前に
テンプレは読め。
197デフォルトの名無しさん:2008/03/14(金) 22:43:04
何を読むんだw
書けば1行で済むのに
(do ((i 0 (+ i 1)) (xs '() (cons (call/cc values) xs))) ((> i 10000) xs))
198デフォルトの名無しさん:2008/03/14(金) 22:53:51
>>4
199デフォルトの名無しさん:2008/03/14(金) 23:39:04
マクロ定義の中身について質問があります。

(define-syntax letcc
(syntax-rules ()
((letcc var . body)
(call-with-current-continuation
(lambda (var) . body)))))

このマクロ定義の(letcc var . body)や(lambda (var) . body)に出てくる
ドット記号はどういう意味なのでしょうか?

後者は継続を関数として定義しているように見えますが、varに何か値を与えた
場合、結果はどのように評価されるのでしょうか?
200デフォルトの名無しさん:2008/03/14(金) 23:43:05
マクロ定義以外に出てくるドットと同じ。
201デフォルトの名無しさん:2008/03/14(金) 23:47:56
まずは>>3を読んでくれ。

(a b c) : (1 2 3) → ((a . 1) (b . 2) (c . 3))
(a b . c) : (1 2 3 4) → ((a . 1) (b . 2) (c 3 4))

評価しない
202デフォルトの名無しさん:2008/03/15(土) 01:23:30
>>200
consセルのドットですね。

>>201
Revised5を見てみましたが基本的なルールがわかりませんでした。

(call-with-current-continuation
(lambda (var) . body))
これは継続の定義で、確かに文法どおり1引数を取る関数
(lambda (var) . body)が書かれてますが、この表記の
意味が理解できません。通常の関数の一つとして
(lambda (var) (* 2 var ))ならば、((lambda (var) (* 2 var )) 10)
のように実行できます。上のマクロだと(letcc hoge 3)などとやると
確かに3に評価されるのですが、(lambda (var) . body))のvarにhoge
が渡されて . body が3になるということですか?
やはり(lambda (var) . body)の表記の意味がわかりません。
203デフォルトの名無しさん:2008/03/15(土) 01:29:13
>>202
> >>200
> consセルのドットですね。

それがわかっているのに何故>>199のマクロが理解できないか、
そっちの方が理解できないよ。

もしかして (lambda (a b . restargs) ...) も知らない?
204デフォルトの名無しさん:2008/03/15(土) 01:54:00
>>184
thx
205デフォルトの名無しさん:2008/03/15(土) 04:22:58
>>203
例えば>>3http://www.sci.u-toyama.ac.jp/~iwao/Scheme/r5rsj/html/r5rsj.html には
には
手続き

[[構文]]  (lambda <仮引数> <ボディ>)

構文: <仮引数>は下記に示す通りの仮引数のリスト(16)でなければならず、
<ボディ>には一つ以上の式が連続しなければならない。

ってなってるから、
. body
の部分がどういう解釈なのかを聞いてるんだと思うんだが。

206デフォルトの名無しさん:2008/03/15(土) 04:55:32
>>202
(lambda (var) . body)
↓↑
(lambda (x) (foo x) (bar x) (baz x))
=(lambda (x) . ((foo x) (bar x) (baz x)))

→body = ((foo x) (bar x) (baz x)))

;;;;;;;;;;;;;;;;;;;
(lambda (var) body)
↓↑
(lambda (x) (foo x) (bar x) (baz x))

ミスマッチエラー
207デフォルトの名無しさん:2008/03/15(土) 05:40:01
カッコ書いてるとふわふわふわと夢が広がりすなぁ( ^ω^)
208デフォルトの名無しさん:2008/03/15(土) 09:38:41
例のGauche本でさわり始めたんだけど、VimでEmacsのc-x -eみたいにエディタ内から部分的に式を評価することってできないのかな?

あと、(car '()) がエラーになるのは当然なんだけど、これでエラーが発生している行数って分からないものなの?
手続き型言語だとエラーの行数は極当然の情報だけど、これに一番戸惑っている。
209デフォルトの名無しさん:2008/03/15(土) 10:18:10
パーズしたときに行の情報は失われる
どのみちマクロ展開でテキストとの対応が取れなくなるだろうし
210デフォルトの名無しさん:2008/03/15(土) 11:15:56
レスありがとうございます。

>>203
>>205
>>206
>(lambda (a b . restargs) ...)

これは分かります。
この場合、2個以上の引数を渡すことが出来て、1番目はaに2番目はbに
残りはリストとしてrestagrsに渡されます。

> (lambda (var) . body)
> ↓↑
> (lambda (x) (foo x) (bar x) (baz x))
> =(lambda (x) . ((foo x) (bar x) (baz x)))
> →body = ((foo x) (bar x) (baz x)))

lambda (x)がS式ということならば理解できます。

戻りますが、
(define-syntax letcc
(syntax-rules ()
((letcc var . body)
(call/cc
(lambda (var) . body)))))

(letcc x 3) が(call/cc (lambda(x) (x 3)))に置き換わって継続x
(今の場合何もしない)が実行されて3という結果を生じるのは間違い
なさそうです。これが正しい理解ならば、xはvarに置き換えられますが、
3が(x 3)になるのが理解できません。bodyが3になるとして、
(lambda (x) . 3)だと意味がわかりませんよね。。
211208:2008/03/15(土) 11:17:28
>>209
しかし、それなりの規模のコードを書いているときふとエラーが発生したら何を目印にしてデバッグすればいいの?
行番号がないLISPなりのデバッグ方法ってあるの?
212デフォルトの名無しさん:2008/03/15(土) 11:18:24
(call/cc (lambda(x) 3))でも3になりますね。
(letcc x 3) ==> (call/cc (lambda(x) 3)) かもしれません。
213デフォルトの名無しさん:2008/03/15(土) 11:40:38
gaucheは行番号持ってる。が、当てにならん……
214デフォルトの名無しさん:2008/03/15(土) 11:57:16
>>210
(letcc var . body) → (letcc . (var . body))
(letcc x 3) → (letcc . (x . (3 . '())))
var = x
body = (3)
即ち(letcc x 3)は(call/cc (lambda (x) 3))に置換される。
(call/cc (lambda (x) 3))も(call/cc (lambda (x) (x 3)))も
同じ継続に同じ値を返しているから勘違いしたのでは?
215デフォルトの名無しさん:2008/03/15(土) 12:01:45
さらに追加
(lambda (x) 3) → (lambda . ((x) . (3)))だから

マクロのパターンマッチ時には構文とか関係なく
リストの置換処理のみ行われる
216デフォルトの名無しさん:2008/03/15(土) 12:03:01
テンプレートとの対比を考えれば
(lambda (x) . (3))と書いた方が適切だったか
217デフォルトの名無しさん:2008/03/15(土) 12:26:40
>>214

> (letcc var . body) → (letcc . (var . body))
> (letcc x 3) → (letcc . (x . (3 . '())))

理解できました。(パズルのようでした。。)
基本的な文法とともにSeasonedを進めていきたいと思います。
ありがとうございました。
218デフォルトの名無しさん:2008/03/15(土) 12:37:31
>>215
>>216

紙に書きながら確認したのですが、確かにbodyが(3)なので
(lambda (x) . (3))になります。
. ( は省略できるので(lambda (x) 3)と同義ですね。

(lambda (x) 3) は要素が lambda、 (x)、 3 のリストということですか。

考え方はC言語のマクロと同じで単にラベル置換するだけでよいと。

スッキリしました。ありがとうございました。
219デフォルトの名無しさん:2008/03/15(土) 12:50:33
>>213
して、その方法は?
220デフォルトの名無しさん:2008/03/15(土) 13:07:28
>>211
Lisperがバグなんて出すわけないじゃん
221デフォルトの名無しさん:2008/03/15(土) 14:36:40
フムフム本にはそこら辺について書かれてないのかな。
222デフォルトの名無しさん:2008/03/15(土) 14:54:29
やっぱり宣言的にプログラムを組む事と
関数単位でREPLでテストを繰り返す事に尽きるのかな?
223デフォルトの名無しさん:2008/03/15(土) 14:57:20
短い関数しか書かない!
224デフォルトの名無しさん:2008/03/15(土) 15:48:39
ヌクヌク本来たぁ!
初版第1刷が何部出るか分からなかったから
布教用は買わなかったけど。
225デフォルトの名無しさん:2008/03/15(土) 15:53:06
プログラミングGauche届いた。cbookにしておいて良かった。
これがヌクヌク本ですか?
226デフォルトの名無しさん:2008/03/15(土) 16:03:18
店頭に並んだかな?
227デフォルトの名無しさん:2008/03/15(土) 16:17:59
http://bookweb.kinokuniya.co.jp/htm/4873113482.html

紀伊国屋にはあるみたい。
228デフォルトの名無しさん:2008/03/15(土) 17:04:40
フムフム本でもヌクヌク本でも良いけど、カワハギ本とだけは呼ばないでくださいませ。
229デフォルトの名無しさん:2008/03/15(土) 17:06:06
むしろフムフム本ヌクヌク本と読んでる奴等の方がキモイ件
230デフォルトの名無しさん:2008/03/15(土) 17:49:09
ブーブー本ならいいのかな?
231デフォルトの名無しさん:2008/03/15(土) 19:25:18
中甲本
232デフォルトの名無しさん:2008/03/15(土) 20:12:03

Lisp/Schemeの初心者勉強会って需要ある?
とりあえずIRCつかってやってみたいと思ってるんだけど
233デフォルトの名無しさん:2008/03/15(土) 20:26:07
>>232
ここの人たちは経験豊富だから漏れのような初心者の質問は
申し訳なくて躊躇してしまう。結局答えてもらってるけどw。
他言語みたいに初心者スレがあれば相談しやすいんだが。
でも初心者スレに初心者しか集まってもしょうがないか。
分からなかったら聞くという形式がいいな。会社でも
勉強会とかやっても結局あまり意味は無いから。
234デフォルトの名無しさん:2008/03/15(土) 20:33:38
>>232
IRCってやったことないけど
やってみたい
235デフォルトの名無しさん:2008/03/15(土) 21:28:16
モレモレモ
236232:2008/03/15(土) 21:34:09
いくらか需要があるので

irc.scenecritique.com
port 6667

チャンネル #Lisp_Scheme

クライアントはcottonあたりが誰でも使いやすいと思います
(LisperならEmacsでつないだ方がいいかもしれませんが)

なるべくつなぎっぱにしておきますが、サーバメンテナンス後とかは
誰もいない状況になるかもしれません

※IRCはつないだまま離席している人が結構いるので即返答はないことが多いです



237デフォルトの名無しさん:2008/03/15(土) 21:42:47
Schemeでは手続きっていつコンパイルされるんですか?
lambda式はreadの後、evalの前にコンパイルできるけど
その評価された値である手続きはevalより前にはコンパイルできませんよね?
それとも、CLだと「手続きを返す手続きがコンパイルされると、その返される手続きもコンパイルされる」から
「コンパイルされたlambda式は、コンパイルされた手続きを返す」とかになるんでしょうか?
(そもそもCLの#'構文は手続きへと評価される式ではなく、手続きのリテラル表現?)
238デフォルトの名無しさん:2008/03/15(土) 21:44:56
>>236
文字コードは?
239デフォルトの名無しさん:2008/03/15(土) 21:52:20
>>237
仕様を満たす限りいつコンパイルしてもよい。コンパイルしなくてもよい。
240デフォルトの名無しさん:2008/03/15(土) 22:06:15
>>239
すみません、そういう話ですらありませんでした。
勘違いしてました。
237は忘れてくださいorz
241デフォルトの名無しさん:2008/03/15(土) 22:49:42
wide系の#scheme-jpが過疎ってるんだけど、
暇なやつはこっちもつないでみれ
どっちかというと雑談メインな気もするが
242デフォルトの名無しさん:2008/03/16(日) 10:37:00
>>232
Webチャットが嫌でなければここ↓で聞くと良いかも。
http://www.lingr.com/room/gauche
243デフォルトの名無しさん:2008/03/16(日) 13:10:36
尼で"プログラミングGauche"の予約して、確か発送予定が今日ぐらいになってたけど…
今確認したら4/8-4/22とかになってた…。何コレ?初版割当分売切れ?(3/9予約した)
244デフォルトの名無しさん:2008/03/16(日) 13:16:02
cbookに汁
245デフォルトの名無しさん:2008/03/16(日) 13:36:50
>244
cbookには品切れって書いてある。すごい人気本だなw
とりあえず本屋いってくるよ。
246デフォルトの名無しさん:2008/03/16(日) 13:38:11
>>243
おれには今尼から到着。注文は1日前の3/8。意外と明日あたりくるかもYO。
247デフォルトの名無しさん:2008/03/16(日) 13:46:08
(< 入荷数 予約数) だったみたい。キャンセルしちまった。尼の順位が200位以内に入ってたんだけどw
248デフォルトの名無しさん:2008/03/16(日) 14:03:28
>>247
ありゃま。店頭にダッシュで買いに行かないと一ヶ月待ちかも。
まあ、あせることもないと思うけど。
おれのは修正された版が到着。
初版第1刷ってなってるけどw

shiroさん、Kahuaチーム、出版社のみなさんご苦労様でした。
とても丁寧な仕事にびっくりです。とても初版第1刷とは思えないです。
出版物って中の人しだいなんだな。

次の版では是非是非コンビネータのネタも入れて欲しいな、このスレ的にはw
あとチャーチ・ロッサーの定理とかチューリング完全性も触れたらよかったかな。
書かないまでも参考文献の紹介とか書くと初学者が勉強しやすいと思う。
249デフォルトの名無しさん:2008/03/16(日) 14:32:08
そういう話はPracticalでない本で書くべき
とっつきやすい本が欲しいのは同意
250デフォルトの名無しさん:2008/03/16(日) 15:17:40
http://karetta.jp/book-cover/programming-gauche#H-1p3ukk3
正誤表更新しました。

速報は以下で。
http://tudura.kahua.org/view/006056

>>248
コンビネータを入れるとしても実用的な視点が必要でしょうね。
うまい実例を思いついたら入るかも。
251デフォルトの名無しさん:2008/03/16(日) 15:43:52
>>249-250
コンビネータって実用的な例を紹介するのがネックかもしれませんね。
あくまでもココ最近のこのスレのネタとして流行ってるだけかもしれないしw

Emacsの設定の話なんかも載ってて初学者に優しい構成なのに参考文献が載ってないのは要改善かな。
ある程度わかってくるとググルこともできるけど。現状、最初の言語にSchemeという人が少ないから無問題?
252デフォルトの名無しさん:2008/03/16(日) 16:37:24
これからCommonLispかSchemeを始めようかと思ってるんですが、無謀ですか?
(プログラミング経験はほとんど無し)
253デフォルトの名無しさん:2008/03/16(日) 16:39:44
>>249
同意
>チャーチ・ロッサーの定理とかチューリング完全性
とかは別に他の解説書を見れば良い。実用的なプログラムをSchemeで書く
というテーマの本の方がよっぽど希少だし、貴重。
254デフォルトの名無しさん:2008/03/16(日) 16:40:49
無謀だが、是非やってみて感想を教えてほしい
255デフォルトの名無しさん:2008/03/16(日) 16:41:02
そんじゃ、あたいと一緒に逝ってみようか?
256デフォルトの名無しさん:2008/03/16(日) 16:48:04
>>252
そんなことないと思いますよ。
自分も単なる趣味としてLisp/Schemeでプログラミングを学び初めてみましたが、
そういう趣向でも楽しめています。
将来的に真っ当なプログラマになろうというのだと、ちょっと違うかもしれませんが…。
257デフォルトの名無しさん:2008/03/16(日) 16:57:46
真っ当なプログラマを目指してSchemeから始めてもいいんジャマイカ?
順序はどうあれ手続き型、関数型、オブジェクト指向、並列型などをどのみち学ぶんだし。
やりたくても高価で手が出なかった時代じゃないし、やる気と興味次第でどれから始めてもおk。
258デフォルトの名無しさん:2008/03/16(日) 17:05:39
勉強してても、茂木先生の言うフロー状態になかなかなれない。
259243:2008/03/16(日) 17:12:23
電話確認して店頭に向かい、無事入手。
自分:「在庫確認よろしいですか?フムフムヌクヌクアプアア…」
店員:「…(プッ」
自分:「い、いや、あの、プログラミング ゴーッシュ、G. A. U. C. H. Eという本ですが」
自分:「あ、ISBN番号は...」
店員:(話を遮り)「オライリーの本ですね。ありますよ(はーと)」
有隣堂++
260252:2008/03/16(日) 17:17:44
>>254-257
レスどもです。ちなみに30過ぎのおっさんで、趣味でやろうと思ってます。
Practical Schemeのグレアムの翻訳記事を見て面白そうだと感じました。

先ほど、Gauche本買ってきて読み始めた所ですが、「本書の"主な"対象読者が
Schemeをやった事が無いけど、他のプログラミング経験がある人」と
書いてあって、若干出鼻をくじかれた所です。
261デフォルトの名無しさん:2008/03/16(日) 17:21:39
Gauche本早く読みたいけど、Schemerシリーズがまだ終わってない。
262デフォルトの名無しさん:2008/03/16(日) 17:24:23
もうひとつの Scheme 入門
http://www.shido.info/lisp/idx_scm.html
が入門者にはおすすめできると思う
263デフォルトの名無しさん:2008/03/16(日) 17:25:06
うわあ、結構正誤あるなあ。もう少し待てばよかったかな。
264デフォルトの名無しさん:2008/03/16(日) 17:40:46
本屋に予約してあったGauche本を取りに行ってきた。
丁寧に書いてあるみたいだね。
265デフォルトの名無しさん:2008/03/16(日) 18:04:12
Windowsユーザーだからなぁ
266デフォルトの名無しさん:2008/03/16(日) 18:05:44
Gauche本の「18章 構文の拡張」と「21章 デバッグ」、いままで欲しかった内容で感謝感激。
「18章 構文の拡張」はグレアムの「On Lisp」を考えて記述してあるので、読後On Lispへ進むこともできる。
267デフォルトの名無しさん:2008/03/16(日) 18:16:05
>>266
早いなオイ
268デフォルトの名無しさん:2008/03/16(日) 18:23:00
>>265
本見たら、制限あるけどwinでも動くってよ
269デフォルトの名無しさん:2008/03/16(日) 18:25:33
>>260
(・∀・)人(・∀・)ナカーマ
俺もそんな感じで最近プログラミングに挑戦してみようと思って、まずは
SICPをのろのろ読んでるところです。
学生時代に lambda calculi やら computability theory やらを少しかじってた
ので、Lisp系がとっつきやすいかな、と思ってSchemeに挑戦中なのですが、
そのほかのプログラミング言語の知識がほぼ皆無なので、Gauche本はもう少し
鍛えてからにしようかと思っています。
270デフォルトの名無しさん:2008/03/16(日) 18:27:53
>265
前スレにwin神がうpしたバイナリがある
271デフォルトの名無しさん:2008/03/16(日) 18:29:08
>>268
えっ、解説環境はLinuxなの?シーキビだな。
この間うpしてくれたWindows用のGauche使おうと
思ってたのに。
272デフォルトの名無しさん:2008/03/16(日) 18:29:30
>269
漏れもSICP絶賛手間取り中なので、Gauche本読みはだいぶ遅れそう orz
273デフォルトの名無しさん:2008/03/16(日) 18:30:27
>>265
MzSchemeやらないか
いまFFIのことを調べたりしてるんだが、意外と簡単そうなので
自分で好きなように拡張できると思う
274デフォルトの名無しさん:2008/03/16(日) 18:35:30
>>269>>272
並列して読んでもいいんじゃないか?
Gauche本の方は電車は風呂の中でも読める内容だろうし。
275デフォルトの名無しさん:2008/03/16(日) 18:43:53
>>269
自分は逆にSICP読んでもチンプンカンプンで途中で挫折したので、
実践的なCauche本読んでからSICPに移ろうと思ってます。
LLかじってLispにたどり着いた感じ。
276デフォルトの名無しさん:2008/03/16(日) 18:53:36
Gauche本ってScheme版のRails本みたいなのかと思ってたけど、
どっちかって言うとThe Ruby Wayに近い感じだった。
入門者は「第2部 Gaucheの基礎練習」をしっかり読めばSICPとかに進めます。
この本の売りはなんと言っても第3部の実用篇でしょう。
スクリプト言語としての特徴を詳説してます。
CGIあり、データーベースありで、Kahuaの基礎も学べます。
277デフォルトの名無しさん:2008/03/16(日) 19:00:08
>>270
公式ページにもWinバイナリ一応あるがな。(´・ω・`)
http://practical-scheme.net/gauche/download-j.html

前スレで上がってたのはslibとかwilikiとか同梱してある分だけ便利だけど。
↓に更にglintも同梱したのがおいてあるぞ。
http://saito.s4.xrea.com/wiliki.scm?Gauche
278デフォルトの名無しさん:2008/03/16(日) 19:05:28
>>276
第3部はおもしろいな。15章でSXMLの説明があるのにはたまげた。
279デフォルトの名無しさん:2008/03/16(日) 19:12:41
結局、活用範囲はWebかよ。。
280デフォルトの名無しさん:2008/03/16(日) 19:16:00
なぜかMacのEmacsの写真w
281デフォルトの名無しさん:2008/03/16(日) 19:18:07
WebアプリとただのWebサイト構築は違うけどね。
282デフォルトの名無しさん:2008/03/16(日) 19:29:35
.emacsの設定をプログラミングGaucheのサポートサイトからコピペした。
でも日本語が文字化け。

gosh -V
Gauche scheme interpreter, version 0.8.13 [utf-8,pthreads]

(modify-coding-system-alist 'process "gosh" '(utf-8 . utf-8))
でダメだったので、以下も追加した。

(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8)
(setq default-buffer-file-coding-system 'utf-8)

それでも、run-schemeでは文字化けします。
どうすれば日本語表記出来ますか?
283デフォルトの名無しさん:2008/03/16(日) 19:38:32
日本語でおk
284デフォルトの名無しさん:2008/03/16(日) 19:42:46
LispBox みたいな SchemeBox あるいは GaucheBox が必要だな。
Emacs とかライブラリとか全部込み込みのヤツ。
285デフォルトの名無しさん:2008/03/16(日) 19:58:00
全部込み込みのパソコンにはWindowsが入ってるんだけどね。
286デフォルトの名無しさん:2008/03/16(日) 20:05:52
Meとか98とか95とかNTでなければ
coLinuxを使えばいいじゃない
287デフォルトの名無しさん:2008/03/16(日) 20:20:07
おばかさん
288デフォルトの名無しさん:2008/03/16(日) 21:01:28
282です。
解決策が見つからなければ、euc-jpのエンコードで再コンパイル→インストールしてGaucheを使います。
289デフォルトの名無しさん:2008/03/16(日) 21:03:04
(person=? >>249 >>253)
=> #t
290デフォルトの名無しさん:2008/03/16(日) 21:07:24
VMWareでFedora Core4でも大丈夫?
291デフォルトの名無しさん:2008/03/16(日) 21:11:16
282・288です。
なんか分かってきました。
OSがVine Linuxだからのような気がしてきました。
他のディストリビューションならOKなのかな?
292デフォルトの名無しさん:2008/03/16(日) 21:15:01
>>291
ttp://softsupport.seesaa.net/article/25598905.html
Emacs21とかでUTF-8+日本語扱うのに苦労したって人のブログ。
参考になるかわからんが。
たぶん、ディストリビューションの問題じゃないと思われ。
293デフォルトの名無しさん:2008/03/16(日) 21:15:05
>>291
emacsがutf-8のBOM付きと無しの両方をちゃんと扱えるか確認してみろ。
294デフォルトの名無しさん:2008/03/16(日) 21:17:21
BOM付きが扱えないだけならemacsの機能拡張に必要なものだけ落としてくればいいね。
295デフォルトの名無しさん:2008/03/16(日) 21:17:40
VirtualBox+Ubuntuでmake&test通って問題なくインストールできた。
しかし肝心の本が届かない。
296デフォルトの名無しさん:2008/03/16(日) 21:24:00
Gauche本5章に「5.2 マルチバイト文字の利用」とあるけど、
rubyのRSpecみたくプログラムから切り離すのが主流になってるから、
ちょっと逆行してるなぁ。本の最初の方で紹介するのイクナイ。
297デフォルトの名無しさん:2008/03/16(日) 21:35:28
俺も読み初めたばっかりだが、貴方のいう事がよくわからん。

RSpecってナニ?マルチバイト文字の利用をプログラムから切り離すって?
逆行とは? Ruby ではマルチバイトの利用がもっと便利ってこと?
298デフォルトの名無しさん:2008/03/16(日) 21:42:30
>>297
わからんならわからんでええやん。逝ってよし。
299デフォルトの名無しさん:2008/03/16(日) 21:44:34
「逝ってよし」なんてすごい久しぶりに見た
年代モノだよね
300デフォルトの名無しさん:2008/03/16(日) 21:52:11
>>299
激同。最近はググレが流行中w
そのうちgoogleもなくなるんだろうか?
301デフォルトの名無しさん:2008/03/16(日) 21:54:22
RSpecはBDDなテスト用フレームワーク。
故に>>296はイミフ。

Rubyが文字列の扱いがCSIなことを言いたいんだろうか?
302デフォルトの名無しさん:2008/03/16(日) 21:57:34
>>301
どこが「故に」かオマエがイミフだw
303デフォルトの名無しさん:2008/03/16(日) 22:09:33
rubyで日本語を切り離すのGetText使うかな?まあ、スレちかな。
304デフォルトの名無しさん:2008/03/16(日) 22:30:52
RSpecとマルチバイト文字か…。本人と>>302には理解できる関係があるのかな。
とりあえず>>302に説明希望。
305デフォルトの名無しさん:2008/03/16(日) 22:31:13
ttp://blog.livedoor.jp/dankogai/archives/50737353.html

あたりを読んでみるとrubyも昔のperlみたくnkfでやってる。
でも特定の条件では上手く動かないらしい。
もしかするとこの辺でRSpecとか?
306デフォルトの名無しさん:2008/03/16(日) 22:33:06
>>304
第三者のオレになんで説明希望するの?>>301だろw
307デフォルトの名無しさん:2008/03/16(日) 22:35:03
もういいって。よそでやれよ。
308デフォルトの名無しさん:2008/03/16(日) 22:42:09

と、知ったかぶって引っ込みのつかなくなった>>297 = >>301が言っておりますw
309デフォルトの名無しさん:2008/03/16(日) 22:55:01
2ちゃんねる的には、いいふいんきですね
310デフォルトの名無しさん:2008/03/16(日) 23:05:34
dankogaiは1時間読んでSICPの副読本に最適と書いてるが。
311デフォルトの名無しさん:2008/03/16(日) 23:27:45
   _,,....,,_  _人人人人人人人人人人人人人人人_
-''":::::::::::::`''>   ゆっくりしていってね!!!   <
ヽ::::::::::::::::::::: ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄
 |::::::;ノ´ ̄\:::::::::::\_,. -‐ァ     __   _____   ______
 |::::ノ   ヽ、ヽr-r'"´  (.__    ,´ _,, '-´ ̄ ̄`-ゝ 、_ イ、
_,.!イ_  _,.ヘーァ'二ハ二ヽ、へ,_7   'r ´          ヽ、ン、
::::::rー''7コ-‐'"´    ;  ', `ヽ/`7 ,'==─-      -─==', i
r-'ァ'"´/  /! ハ  ハ  !  iヾ_ノ i イ iゝ、イ人レ/_ルヽイ i |
!イ´ ,' | /__,.!/ V 、!__ハ  ,' ,ゝ レリイi (ヒ_]     ヒ_ン ).| .|、i .||
`!  !/レi' (ヒ_]     ヒ_ン レ'i ノ   !Y!""  ,___,   "" 「 !ノ i |
,'  ノ   !'"    ,___,  "' i .レ'    L.',.   ヽ _ン    L」 ノ| .|
 (  ,ハ    ヽ _ン   人!      | ||ヽ、       ,イ| ||イ| /
,.ヘ,)、  )>,、 _____, ,.イ  ハ    レ ル` ー--─ ´ルレ レ´
312デフォルトの名無しさん:2008/03/16(日) 23:57:49
とりあえずインストールはできた。VMware Fedora Core4
313デフォルトの名無しさん:2008/03/17(月) 01:13:55
>>291

> 他のディストリビューションならOKなのかな?

fedora 8だけど問題ないよ.

"GNU Emacs 22.1.2 (i686-pc-linux-gnu, GTK+ Version 2.12.3)
gosh -V
Gauche scheme interpreter, version 0.8.13 [utf-8,pthreads]

gosh> (display "日本語表示テストです.")
日本語表示テストです.#<undef>
gosh> (string-ref "Scheme処理系" 8)
#\系
gosh> (list->string (reverse (string->list "アルゴリズム")))
"ムズリゴルア"
gosh>
314デフォルトの名無しさん:2008/03/17(月) 02:36:32
すげえ関数考えたぞ!





(omaemona itteyoshi)
315デフォルトの名無しさん:2008/03/17(月) 04:58:44
式ですやん
316デフォルトの名無しさん:2008/03/17(月) 07:33:14
Emacs22はUTF-8に対応してるけど
Emacs21は対応してないってだけでしょ
Mule-UCSを入れないと
317デフォルトの名無しさん:2008/03/17(月) 08:15:19
というか、22以下は全部Mule-UCS入れた方がいいと思う。
入れるとビックリするほど遅いが。
318デフォルトの名無しさん:2008/03/17(月) 11:51:59
Gaucheって
[+ 1 {+ 3 4}]
みたいに()以外の括弧も使えますよね。
これって単に見た目だけの違いなんでしょうか?
319デフォルトの名無しさん:2008/03/17(月) 12:34:25
はい
320デフォルトの名無しさん:2008/03/17(月) 13:16:02
scheme専用Linuxマシンとか作っちゃってる人いるの?
321デフォルトの名無しさん:2008/03/17(月) 13:19:24
どういう意味で専用?
schemeインタプリタ/コンパイラのためのシステムコールを作る特製の
パッチ当ててるとか?
322デフォルトの名無しさん:2008/03/17(月) 13:19:45
まるで悪いみたいな言い方だ
323デフォルトの名無しさん:2008/03/17(月) 13:24:28
>>320
kernelでブートした後schemeだけで閉じてるってこと?(ってか少し前にlispだけの環境がブートするFDイメージの話があったけどあの系列?)
324デフォルトの名無しさん:2008/03/17(月) 13:25:45
いや、完全に勉強用とか仕事用とかでSchemeを使うためだけに
新たにLinuxPC立ち上げてる人いるかなと思って。
325デフォルトの名無しさん:2008/03/17(月) 13:25:48
うちのLinuxマシン(仮想マシンだけど)は、ほぼMaxima専用だ。
326デフォルトの名無しさん:2008/03/17(月) 13:29:51
Javaはdeveloper releaseのための専用仮想機械もっているけど、
schemeは必要ないからそんな事してない。
(Javaはfirefox pluginとか、いろいろと生活環境と同じだと面倒くさい)
/usr/localにsnapshotはいれてある。
327デフォルトの名無しさん:2008/03/17(月) 13:35:17
いないか。VirualBox仮想マシン+Linuxにgauche入れたんだけど、仮想マシンが重い。
Pen4 3GHz、メモリ1GBでももう低スペックなのかもしれない。組みなおそうかな。
328デフォルトの名無しさん:2008/03/17(月) 13:44:10
どんだけ〜
329デフォルトの名無しさん:2008/03/17(月) 13:47:32
SchemeでデバイスドライバかけるLinuxがあっただろ。
330デフォルトの名無しさん:2008/03/17(月) 13:49:15
それはもうLinuxではない気がする。
みんなでScheme OS作ろうぜ。w
331デフォルトの名無しさん:2008/03/17(月) 13:57:30
Movitz でいいじゃん。
332デフォルトの名無しさん:2008/03/17(月) 14:07:45
Schemix
333デフォルトの名無しさん:2008/03/17(月) 14:12:10
>>329 なにそれ?
334デフォルトの名無しさん:2008/03/17(月) 14:24:12
>>329
これか。世の中おもしろいな。
ttp://slashdot.jp/linux/03/04/29/0742257.shtml
335デフォルトの名無しさん:2008/03/17(月) 14:48:17
>>333
>>332
んでもって Schemix は既に中の人が飽きぎみで、>>331 をプッシュしてる
336デフォルトの名無しさん:2008/03/17(月) 15:58:38
Schemeで書かれたEmacsがあれば満足なんだ
337デフォルトの名無しさん:2008/03/17(月) 16:09:28
つまり、コアがCではなくSchemeで、その上でelispが動くという訳か…
338デフォルトの名無しさん:2008/03/17(月) 16:53:55
全部Schemeでおながい(/_;)
339デフォルトの名無しさん:2008/03/17(月) 17:45:30
すみませんが教えてください。

Seasoned SchemerのP79の最初のパラグラフの英訳について

Here are our thoughts:
"When a (let ...) has two expressions in its
value part, we must first determine the
value of the first expression. If it has one,
we ignore it and determine the value of the
second expression.

(let ...)構文のvalue part(名前付けの部分ではなく式の並び部分)
についての説明ですが、If it has one, の部分がわかりません。
以下は予想訳ですが、正しいでしょうか?

(予想訳)
(let ...)がvalue partに二つの式を持っているとき、まず最初に
一番目の式を決定(評価するという意味)しなければいけません。
もし????ならば、それを無視して、二番目の式を決定します。

要は二つの式を上から順番に評価していくんだよ、と言いたいのだと
思っているのですが、If it has one, の it と one が何を指してるのかが
わからず理解できません。it が (let ...)、 one が one expression のこと
かなとも思ったのですが、そうすると以降の意味が分からなくなってしまいます。

読まれた方いましたら教えてください。
340デフォルトの名無しさん:2008/03/17(月) 18:07:49
読んだ
わからない
おわり
341デフォルトの名無しさん:2008/03/17(月) 18:10:02
>>331
あー、それそれ、ちょっと使ってみたけど面白かった(大昔のlispマシンの雰囲気味わえるんで)
>>338
MIT GNU Schemeじゃだめなん?
342デフォルトの名無しさん:2008/03/17(月) 18:21:50
>>339
逝ってよし
>>340
オマエモナー
343デフォルトの名無しさん:2008/03/17(月) 18:42:37
>>336-338
ng+scmってのはどうなんだろう?

>>339
もしかしたら
(let ((x 0) (y 0))
 exp1
 exp2)
の値は
exp1を無視してexp2になるってことかな?
344デフォルトの名無しさん:2008/03/17(月) 18:45:50
コアがSchemeじゃないから違うか
345デフォルトの名無しさん:2008/03/17(月) 18:59:35
>>339
If the first expression has a value
じゃないの?
346デフォルトの名無しさん:2008/03/17(月) 19:00:38
>>343
そうだと思ってます。

そうだとすると、If it has one, の it は the first expression を指していて
one は、the value を指していると考えれば、辻褄は合いますかね。

(let ...)がvalue partに二つの式を持っているとき、まず最初に
一番目の式を決定(評価するという意味)しなければいけません。
もし一番目の式が値を持つなら、それを無視して二番目の式を決定します。

このように理解しておきます。レスありがとうございました。
347デフォルトの名無しさん:2008/03/17(月) 19:01:29
>>345
時間差でした。
レスありがとうございます。
そう理解するようにしました。
348デフォルトの名無しさん:2008/03/17(月) 19:29:11
>>339は計算途中の値を表示させたりして考えながら読めない子なのか?
他の言語でデバッグとかの経験あるんだろうに。
349デフォルトの名無しさん:2008/03/17(月) 20:28:11
>>348
英語の理解が正しいかということでしょ?
350デフォルトの名無しさん:2008/03/17(月) 20:49:47
SchemerシリーズはSchemeを使って英語を勉強する本だったんだ
351デフォルトの名無しさん:2008/03/17(月) 21:16:44
どんだけ〜
352デフォルトの名無しさん:2008/03/17(月) 21:18:23
やっぱ2ちゃんやってるプログラマは馬鹿ばかり。
まともな奴はこんな2ちゃんなんてやってないだろうし。
353デフォルトの名無しさん:2008/03/17(月) 21:19:19
馬鹿はお前だけ
354デフォルトの名無しさん:2008/03/17(月) 21:38:05
>>346
一つ目の式の値を持たなければ
二つ目の式の値を決定しようとはしない

意味論的には、
一つ目の式がbottomになれば、つまり値を持たないなら、
二つ目の式の値が何であろうと、let全体はbottomになる。
Schemeはトップレベルを持つので、
このことが言語的にも実質的に意味がある。

>>336
Guile Emacs
http://www.mit.edu/~raeburn/guilemacs/
355デフォルトの名無しさん:2008/03/17(月) 21:39:32
スクリプト言語をちょっとやってた程度の初心者だけど、
プログラミングGauche買ってきた。
LispとかSchemeっていうとアカデミックで
高尚な言語という印象だけど、文体は平易で読みやすい感じ。
がんばる 私 Gauche
356デフォルトの名無しさん:2008/03/17(月) 21:52:45
俺も今日プログラミングGauche買えたよ。
>>355ガンガレ

>>277
どうもです。ありがたくいただきます。
なんか俺の環境だとglintうまくビルド出来なかったんだよね。
357デフォルトの名無しさん:2008/03/17(月) 22:19:58
>>356
glintモジュールは対象ファイル名を標準入力から受け取る変な仕様で、
起動させるためのシェルスクリプトもshが必要。

なので、>>277のはglintモジュールに引数で対象ファイル名を渡すようにした上で
起動スクリプトをGaucheで書き直してmingw-exifyで変換してコンパイルしてある。
だからもしglint.exeからでなくglintをモジュールとして使うなら
オリジナルと非互換になってしまう。そのへんちょっと注意要。
358デフォルトの名無しさん:2008/03/17(月) 22:22:59
Gaucheの拡張機能を使うと、意味論的には、どんな影響があるんだろ
359デフォルトの名無しさん:2008/03/17(月) 22:55:25
>>358
拡張というか、実装上の都合みたいなものでいくつかscheme本来の意味論から乖離している点はある模様。
↓一例
http://practical-scheme.net/wiliki/wiliki.cgi?Gauche%3a%23%3csyntax%3e%e3%82%84%23%3cmacro%3e%e3%81%ae%e8%a9%95%e4%be%a1

このほかにもハイジニックマクロでのリネーム関連でちょっと手抜きになってるところがあって、
マクロを生成するマクロで問題が生じる場合があるってどっかで見た。
syntax-rulesとdefine-macroをあわせて使うと妙な衝突が起こるとかもどこかに書いてあった。
(WiLiKiの方かLingrの方だったか思い出せない)
詳しいことは難しくてわからんかった。
360デフォルトの名無しさん:2008/03/18(火) 00:06:44
男ならEdwin
361デフォルトの名無しさん:2008/03/18(火) 00:41:40
男ならEdlin
362デフォルトの名無しさん:2008/03/18(火) 00:43:43
>>359
shiro氏曰く「R6RSならモジュールを分けることで可能」。
R6RSって不評だと思ってたけど、良い事もあるのね。
でもちょっとCLっぽいかも。
>>145-154でもdefine-syntaxがちょこっと出てきてたけど、
遅延とかマクロが判らないうちはこういう使い方しないでしょ?

普通に使う分には>>358の疑問は問題なしと言えるんジャマイカ?
363デフォルトの名無しさん:2008/03/18(火) 02:21:41
フムフム本にWindowsでEmacs使うやり方書いてある?
364デフォルトの名無しさん:2008/03/18(火) 02:53:02
>>341
MovitzはLispマシンの雰囲気あるかなあ…。
例えば、どの辺り?
今のところx86の上で直に動いてるちょっと変わったCL処理系って感じだけど…。
365デフォルトの名無しさん:2008/03/18(火) 03:59:28
bootstrapとかmemrefとかwith-inline-assemblyとか
366デフォルトの名無しさん:2008/03/18(火) 06:14:10
Interlisp-Dとか、Lispマシンと言ったらああいうのの事想像されるんじゃない。
367デフォルトの名無しさん:2008/03/18(火) 08:05:36
>>363
書いてないよ。Meadowでもそのままいけるんじゃない?
368346:2008/03/18(火) 10:10:11
>>354
>一つ目の式がbottomになれば、つまり値を持たないなら、
>二つ目の式の値が何であろうと、let全体はbottomになる。

ありがとうございます。
これは理解していませんでした。
369デフォルトの名無しさん:2008/03/18(火) 19:04:55
>>367
やってみる
370デフォルトの名無しさん:2008/03/18(火) 22:02:24
>> 366
>Interlisp-Dとか、Lispマシンと言ったらああいうのの事想像されるんじゃない。
漏れもそういう感じだなあ。
ベアメタルの上でLISPが動いてるだけじゃなくて、
なんというかOSも含めた総合環境が評価されていたのがLispマシンという感じ。

まあ、「bootstrapとかmemrefとかwith-inline-assembly」
あたりにLispマシンを感じるというのも正しいといえば、正しい方向な気もする。
371デフォルトの名無しさん:2008/03/18(火) 22:16:37
Gauche(Scheme)でもCalc(elisp)は実装できるんだろうなぁ・・・とつぶやいてみるテスト

ttp://www.biwa.ne.jp/~tanaka/Calc/Texinfo/Texi2html/calc-jp_toc.html
372デフォルトの名無しさん:2008/03/18(火) 22:18:56
ちょちょいのちょいっすよ
373デフォルトの名無しさん:2008/03/18(火) 23:27:21
>>372
Gaucheネ申登場!てかノリが軽いなw
374デフォルトの名無しさん:2008/03/18(火) 23:50:20
俺は *scratch* と maxima があれば満足だな。
375デフォルトの名無しさん:2008/03/19(水) 00:33:53
ストイックなやつだな。俺は imaxima も欲しいね。
376デフォルトの名無しさん:2008/03/19(水) 00:36:49
Gaucheの数学関数が複素数対応だからmaximaとかも同様の理由で複素数対応なのかね?
377デフォルトの名無しさん:2008/03/19(水) 00:41:37
〜が対応だからとかあんまり関係ない。
さらに実装はCommon Lispだし。
378デフォルトの名無しさん:2008/03/19(水) 01:23:23
379デフォルトの名無しさん:2008/03/19(水) 01:29:26
カコイイ!
http://www2.parc.com/isl/groups/nltt/medley/screenshot.gif

Schemeでもこんな感じのフリーのIDEがあったらぽっくんしあわせだお
380デフォルトの名無しさん:2008/03/19(水) 01:47:33
>>379
デジタル・レトロな良い味出てるなあ
381デフォルトの名無しさん:2008/03/19(水) 02:03:54
X使わない派としては失禁寸前のカッコよさ。
382デフォルトの名無しさん:2008/03/19(水) 13:21:05
>>379
懐かしい雰囲気だ。twmの設定をいじりまくってたことを思い出したよ。
383デフォルトの名無しさん:2008/03/19(水) 13:59:20
つか昔見たsmalltalkマシンがそんなんだった。
384デフォルトの名無しさん:2008/03/19(水) 14:04:45
マッキントッシュのモトネタだね。
385デフォルトの名無しさん:2008/03/19(水) 14:04:52
つかstalltalkと入れ替えられたんだから。
386デフォルトの名無しさん:2008/03/19(水) 14:17:50
ALTOはマルチOS運用のはしりだからね。
387デフォルトの名無しさん:2008/03/19(水) 14:33:37
30、40代のおじさん達のスレでつね
388デフォルトの名無しさん:2008/03/19(水) 14:38:01
>>378にエミュレータがあるんだお?
ドゥザーなので出来なくて涙目なんだお…
389デフォルトの名無しさん:2008/03/19(水) 19:44:01
>>387
そう思うのは無理もないんだけど、でも、Lispマシンに関しては、
懐古趣味だけで片付けられる話ではないと思うよ。
未だにLispマシンの統合環境の提供する快適さを超える
ものは少ないという人もいるし。
390デフォルトの名無しさん:2008/03/19(水) 19:54:44
ただその統合環境は、初期の頃はともかく、
結局は専用マシンでしか発達せず、
淘汰されてきたことも忘れてはならない。

Gauche関連開発陣はその反省にたって、
汎用OS上の環境を整備しようとしているように見える。
391デフォルトの名無しさん:2008/03/19(水) 20:02:31
>>390
なんで突然そこまで話が飛ぶのかがわからない。
392デフォルトの名無しさん:2008/03/19(水) 20:16:22
ヒント:はじまりはMovitz
393デフォルトの名無しさん:2008/03/19(水) 20:19:33
>>392
その話は俺が振ったんだ。そうか、それならしょうがないな。
好きなだけ話していいぞ。
394デフォルトの名無しさん:2008/03/19(水) 20:32:52
SqueakってSmalltalk80風味なんでそ?
395デフォルトの名無しさん:2008/03/19(水) 20:46:35
風味と言うかもろ今時Smalltalk。
例の色本以外にもいいテキストがあれば、
もっと普及しただろうに。> smalltalk
396デフォルトの名無しさん:2008/03/19(水) 20:55:40
Movitzベースであんなものを作る人が出てきて欲しいでつ。
397デフォルトの名無しさん:2008/03/19(水) 21:01:40
おニャン子クラブ世代は必ずいるはず。
398デフォルトの名無しさん:2008/03/19(水) 21:01:50
うーむ。文法はともかく、Smalltalkそれ自体が体現する世界感はテキストでは学べないからなぁ…
399デフォルトの名無しさん:2008/03/19(水) 21:09:56
Squeak始めて触ったとき、アランケイがニコニコしながら覗き込んでいるのを思い浮かべた。
ああ、こういうのを「ハック」っていうんだろうな、と思った。
400デフォルトの名無しさん:2008/03/19(水) 21:17:02
オサーンばかりだな。こりゃ初心者は追い出されるわ。
401デフォルトの名無しさん:2008/03/19(水) 21:19:33
最近a little Schemerにメチャ親切だぞ。
402デフォルトの名無しさん:2008/03/19(水) 21:22:56
>>401
あ、ホントだ。これからもよろしくお願い致します。
403デフォルトの名無しさん:2008/03/19(水) 21:24:49
初心者にとってはSchemerシリーズは一つの登竜門なんです。
しかもまわりにSchemeやってる人はゼロ。そんなの覚えて
役に立つの?なんてこともある。だからこのスレは貴重なんです。
404デフォルトの名無しさん:2008/03/19(水) 21:25:54
Squeakは10年経つか経たないかでしょ。
405デフォルトの名無しさん:2008/03/19(水) 21:36:54
プログラミング言語の進化を追え: 第3回 大人のためのブラックボックス読解講座
クロージャとオブジェクトの微妙な関係(1)
川合史朗
ttp://www.ibm.com/developerworks/jp/opensource/library/itm-progevo3/index.html

プログラミング言語の進化を追え: 第4回 大人のためのブラックボックス読解講座
クロージャとオブジェクトの微妙な関係(2)
川合史朗
ttp://www.ibm.com/developerworks/jp/opensource/library/itm-progevo4/index.html
406デフォルトの名無しさん:2008/03/19(水) 21:40:03
>>401
最近、Seasoned Schemerに話題が移ってるな。
407デフォルトの名無しさん:2008/03/19(水) 21:45:21
>>403
それわかる。Excel使ってるとき、ココでSchemeが使えればと思うことがある。
特に入れ子になった=if( , , )文とかみるとcondがあってホスイ。
408デフォルトの名無しさん:2008/03/19(水) 21:51:06
>>406
ええ、今そちらを進めていますので。すいません。
409デフォルトの名無しさん:2008/03/19(水) 22:04:20
> a little schemer
schemersでそ
410デフォルトの名無しさん:2008/03/19(水) 22:08:12
>>407
SIAG (Scheme in a Grid)は廃れちゃったな。
http://siag.nu/siag/

>>409
複数、かな?
411デフォルトの名無しさん:2008/03/19(水) 22:11:09
少なくとも漏れと208で2人居ますお
412デフォルトの名無しさん:2008/03/19(水) 22:23:39
>>410
そんな素敵なものがあったなんて!
413デフォルトの名無しさん:2008/03/19(水) 23:16:33
Siag Office懐かしす
OpenOffice.orgやfirefoxのscheme bindingが欲しいなあ
414デフォルトの名無しさん:2008/03/20(木) 00:30:56
>405
勉強中の漏れにはスゲー勉強になった
415デフォルトの名無しさん:2008/03/20(木) 03:50:57
スレと関係ないけど、最近ググってもアマゾン楽天はてなばっかで
使いもんにならないと思いませんか?
416デフォルトの名無しさん:2008/03/20(木) 04:15:30
>>415
Google Japan から検索してるからでしょ。US のを使ったら良いよ。
417デフォルトの名無しさん:2008/03/20(木) 04:21:23
ふ〜む・・・どうも。 よくわからないのでググってみる。
418デフォルトの名無しさん:2008/03/20(木) 09:52:30
>>405
マクロの出番がないなら、Javascript 辺りが説明用の言語としては良かったかも。
on~ で処理をつないでいくからクロージャはよく使う。
419デフォルトの名無しさん:2008/03/20(木) 10:10:55
>>418
プロトタイプ指向じゃ食い付きが悪いだろ。
420デフォルトの名無しさん:2008/03/20(木) 10:25:51
USのGoogleを使うには ttp://www.google.com/ncr と打つ. "No Country Redirection"
421デフォルトの名無しさん:2008/03/20(木) 12:26:07
>>324

それ俺だ
422デフォルトの名無しさん:2008/03/20(木) 12:46:03
>>421
俺はさくっとMac買ってきた。
423デフォルトの名無しさん:2008/03/20(木) 13:47:28
SchemeのためにROMライターで焼いて専用マイコンMacを作ってって、いつの時代だよw
424デフォルトの名無しさん:2008/03/20(木) 13:53:22
Schemeのためにチップ作っちゃう人だって居ますからw
425デフォルトの名無しさん:2008/03/20(木) 14:19:03
Gaucheもそうだが、CLもフリーな実装はUnix中心だよな
Windowsがいいとはいわんが、移植性は大事だよな
426デフォルトの名無しさん:2008/03/20(木) 14:26:09
lisp 系は image 生成の移植でつまづいて、
次に native thread の移植でつまづくの二段がまえだからな。
427デフォルトの名無しさん:2008/03/20(木) 14:32:40
プログラミングGaucheの65ページで

(define (tree-walk walker proc tree)
(walker (lambda (elt)
(if (list? elt)
(tree-walk walker proc elt)
(proc elt)))
tree))


この中のlambdaの引数eltの意味が分かりません。
defineの中に出てきてない引数がいきなり出てきている点が
いまいち納得できません。
単純なlambda式なら理解できるのですが、少し複雑になってくると、
理解できないです。
このeltはどういう意味なんでしょうか?

428デフォルトの名無しさん:2008/03/20(木) 14:43:45
>>427
インデントが見づらいよ。下のようにすれば、elt が出てきてる所はすべて lambda 式の中に入ってて、
lambda 式の引数が elt だって理解できるんじゃね?

(define (tree-walk walker proc tree)
(walker (lambda (elt)
(if (list? elt)
(tree-walk walker proc elt)
(proc elt)))
tree))
429デフォルトの名無しさん:2008/03/20(木) 14:44:06
>>427
(define (hoge x) (hage x)) は (define hoge (lambda(x) (hage x))) の構文糖衣であることを思い出せ。eltはいきなり出てきたんじゃなくてそこで導入されたんだよ!
430デフォルトの名無しさん:2008/03/20(木) 14:50:43
tabとか押すと関数名入力とかアシストしてくれる環境って
ありますでしょうか。
431デフォルトの名無しさん:2008/03/20(木) 14:53:23
>>430
emacsにscheme-complete.elを導入する
432デフォルトの名無しさん:2008/03/20(木) 15:03:26
>>430
slime + eclipse か slime + emacs
そこまで充実してなくていいなら、tag ファイル作るのが簡単で良い。
433デフォルトの名無しさん:2008/03/20(木) 15:13:24
>>425

そこで誰かがC#でIronSchemeを作ると言う罠。
434デフォルトの名無しさん:2008/03/20(木) 15:14:15
>>427じゃないけど

(define tree-walk
  (lambda (walker proc tree)
   (walker (lambda (elt)
    (if (list? elt)
    (tree-walk walker proc elt)
    (proc elt)))
    tree)))

little schemerみたいに言うと、

tree-walkは3引数関数で最初の引数はwalker。
このwalkerは関数(lambda (elt))と treeを引数にとる2引数関数。
tree-walkの結果は関数walkerの実行結果。

で、いいんですか?
435デフォルトの名無しさん:2008/03/20(木) 15:27:50
>>426
最初の障壁は GC の実装じゃないかな
436デフォルトの名無しさん:2008/03/20(木) 15:48:55
437デフォルトの名無しさん:2008/03/20(木) 15:54:30
     /      \
   /  _ノ  ヽ、_  \
  /  o゚⌒   ⌒゚o  \  今日もまた、SICP
  |     (__人__)    |  タンポポのせる
  \     ` ⌒´     /  仕事が始まるお…
438デフォルトの名無しさん:2008/03/20(木) 15:54:51
ミスった…けどいいや
439デフォルトの名無しさん:2008/03/20(木) 17:22:06
>>425
>>426
>>435
最初の壁は、単純に人的リソース不足では?
440デフォルトの名無しさん:2008/03/20(木) 17:55:01
SICP勉強中で、Schemeの美しさに感動中のものですが、ちょっと気になってる
ことがあるので教えてください。

昔からJavaなどの言語で見た目が綺麗なコードって、関数型風っていうんでしょうか。
あまり手続きをずらずら並べた感じのものでは無いという印象を持ってました。

こういうJavaなどの手続き言語によって書かれた美しいコードは、Schemeなどの
関数型言語のラムダ式を基礎としたものと等価と考えてよいのでしょうか?

きちんと構造化されており、変数のスコープも最小限度になっているコードという
のはSchemeによって書かれたコードと等価な気がするんですが、勘違いでしょうか。
441デフォルトの名無しさん:2008/03/20(木) 18:17:03
>>440
勘違いです。
442デフォルトの名無しさん:2008/03/20(木) 18:37:05
Seasoned Schemer P101 の The Seventeenth Commandment の意味がよくわかりません。

パターン@ let式とset!式の間にlambda式がある
define gobbler
(let ((x......
(lambda (food)
(set! x ......

パターンA let式とset!式の間にlambda式が無い
define nibbler
(lambda (food)
(let ((x......
(set! x ......

P101の So why is it unimaginable? に対する回答がlet式とset!式の間に
lambda式が存在していないからだよとなっていますが、これが何故いけない
のでしょうか?上記パターン@が良くてパターンAがいけない理由を教えて
ください。

また、P100の What is the value of nibbler? に対する回答がUnimaginable
となっていますが、僕はIt is a function.と答えられる気がするのですが
どうでしょうか?

よろしくお願いします。
443デフォルトの名無しさん:2008/03/20(木) 18:46:34
>>439
世の中に広まっている変な物に迎合できる人材は、好きな物を好きなように
作りたい人材に比べて貴重だということだね。w
444デフォルトの名無しさん:2008/03/20(木) 19:07:52
>>435
あんまり関係ない。

>>426
signalと非構造化例外の扱い
445デフォルトの名無しさん:2008/03/20(木) 20:01:46
SchemeでSchemeを作るみたいな人は多いでしょ
その次の段階でなんか壁があるでしょ
446デフォルトの名無しさん:2008/03/20(木) 20:05:53
>>444
GC に signal 使うでしょ。
447デフォルトの名無しさん:2008/03/20(木) 23:36:47
>>422
おれはLittle SchemerのためにPalm Z22買ってLispMe入れた。Littleだけど快適。
448デフォルトの名無しさん:2008/03/21(金) 00:11:22
W-Zero3にPocket-Scheme入れてる。
449デフォルトの名無しさん:2008/03/21(金) 00:16:38
450デフォルトの名無しさん:2008/03/21(金) 00:25:13
OpenBSDザウルスにGauche入れてる
451デフォルトの名無しさん:2008/03/21(金) 00:26:36
Nintendo DS に DS Gambit-C 入れてる
452デフォルトの名無しさん:2008/03/21(金) 00:29:49
工人社SHにMeadow3.0入れてる
453デフォルトの名無しさん:2008/03/21(金) 00:37:48
454デフォルトの名無しさん:2008/03/21(金) 00:44:58
>>453
マジコンも用意しないといけないんじゃね?
455デフォルトの名無しさん:2008/03/21(金) 00:50:03
http://en.wikipedia.org/wiki/DSLinux

この上でGauche動くかな?
456デフォルトの名無しさん:2008/03/21(金) 00:53:31
AppleがDSをiPoneのライバル視してるのわかるな。Gaucheとか動いちゃったらすごいな。
457デフォルトの名無しさん:2008/03/21(金) 00:56:30
458デフォルトの名無しさん:2008/03/21(金) 01:10:32
ノキアのSymbian60用のScheme探してるのですがなかなか見つかりません…(・ω・)
459デフォルトの名無しさん:2008/03/21(金) 01:11:42
460デフォルトの名無しさん:2008/03/21(金) 01:13:07
>>456
アイポン(笑)
461デフォルトの名無しさん:2008/03/21(金) 01:17:45
イポッド・タッチ(藁)
462デフォルトの名無しさん:2008/03/21(金) 01:29:33
アイポン!(・∀・)イイ!
463デフォルトの名無しさん:2008/03/21(金) 01:33:30
ipod nano に ipodlinux入れてScheme使えば最小なんジャマイカ?小さ杉ても使いにくいわけだが。
464デフォルトの名無しさん:2008/03/21(金) 01:40:32
ユビキタスScheme世界へようこそ!
465デフォルトの名無しさん:2008/03/21(金) 01:47:21
ものすごいスピードでPDAでプログラミングしていた人が一言

「指、きたッスwwww」
466デフォルトの名無しさん:2008/03/21(金) 01:52:44
>>465
大切りかよw
Squeak on NEO1973とか見るとSchemeも期待できそう。
http://www.lshift.net/blog/2007/08/23/squeak-and-openembedded
http://russell-allen.com/squeak/faure/screenshots/index.html
467デフォルトの名無しさん:2008/03/21(金) 01:55:49
× 大切り
○ 大喜利
468デフォルトの名無しさん:2008/03/21(金) 02:02:49
NEO1973はGSMだから日本で使えない。iPhoneもだけど3Gチップが出来るまで待ちだね。
469デフォルトの名無しさん:2008/03/21(金) 02:08:59
Schemeさえあれば、電話もネットも要りません。w
470デフォルトの名無しさん:2008/03/21(金) 02:10:32
Squeakはいつも仕掛けるのが早いですね。
471デフォルトの名無しさん:2008/03/21(金) 02:12:41
VMがコンパクトで移植性が良いんだろうね
472デフォルトの名無しさん:2008/03/21(金) 02:17:34
  _   ∩
( ゚∀゚)彡 Scheme VM!Scheme VM!
 ⊂彡
473デフォルトの名無しさん:2008/03/21(金) 02:24:48
iphone VS NEO VS Palm VS DS
474デフォルトの名無しさん:2008/03/21(金) 02:32:47
たまにはPSPのことも思い出してあげてください
475デフォルトの名無しさん:2008/03/21(金) 02:33:48
俺のNokia6630・・・・(TωT)
476デフォルトの名無しさん:2008/03/21(金) 02:37:36
ザウルスも思い出してあげて
477デフォルトの名無しさん:2008/03/21(金) 06:43:32
しかし小さい画面で不便感じないかな。
どんな使い方してるんだろ。
478デフォルトの名無しさん:2008/03/21(金) 08:45:57
そうかSqueakって最初からダイナブック(東芝じゃない方)
479デフォルトの名無しさん:2008/03/21(金) 08:48:08
最初からDynabookの流れなんだな。きっと。
480デフォルトの名無しさん:2008/03/21(金) 09:02:50
>>477
自分は自宅鯖にOpenBSDザウルスを使ってる
モバイルの意味ねー
481デフォルトの名無しさん:2008/03/21(金) 09:25:13
>>453-454
USのDRMだかの絡みでマジコンはそろそろ日本でも消える、
というか任天堂がマジコン販売店に内容証明郵便送りまくってるから
買うならお早めにどうぞ。

ちなみにPythonも動いてる。
でもキーボード無いから単体じゃ開発は無理だぞw
482デフォルトの名無しさん:2008/03/21(金) 11:55:55
DS LuaなんてのもあるからLuaも移植簡単なのかな。
483デフォルトの名無しさん:2008/03/21(金) 12:46:40
Luaは移植性と組み込みやすさを念頭において開発してるからね。
DSのPythonは本家じゃなくてStacklessが移植されてる。
本家はnative threadとか色々めんどいし。
484デフォルトの名無しさん:2008/03/21(金) 13:00:12
LuaはANSI Cさえあれば動くらしいね
485デフォルトの名無しさん:2008/03/21(金) 15:50:15
Luaの場合は移植性の面倒事をANSI Cが引き受けてるのかな?
Schemeコードも一旦パーサーでANSI Cに書き出してやれば直ぐに動かせる?
486デフォルトの名無しさん:2008/03/21(金) 15:56:39
セドリ屋がScheme入門8600円で出してる。たけえ。
487デフォルトの名無しさん:2008/03/21(金) 16:16:16
プログラム書いてたら横から覗かれ、フト気が付くとそいつが踊っていた。
「何してんの?」
「踊ってやってんじゃン」
「だからなんで?」
「ランバダって書いてるじゃン」
「え?・・・Lambdaのことか?」
「ランバダ!ランバダ!イェー!」
「・・・Lambdaのバカ・・・」
488デフォルトの名無しさん:2008/03/21(金) 16:16:56
>>485
やってみりゃわかる
489デフォルトの名無しさん:2008/03/21(金) 16:23:27
>>485
Cを高級アセンブラみたいに位置づけて考えるならそうだね。
gccのポータビリティーでかなり吸収できる。
490デフォルトの名無しさん:2008/03/21(金) 16:38:55
Kyoto Common Lisp以来の伝統芸だな
491デフォルトの名無しさん:2008/03/21(金) 16:50:46
現実的に今使えるのはZaurus(Gauche)とPalm(LispMe)、あと今後可能性があるNintendo DS(DS Gambit-C)の3つか。
より安価なハードに今後も移行していくんだろうな。将来性があるのはLinuxベースのLiMoとかNEOか。
492デフォルトの名無しさん:2008/03/21(金) 16:53:47
うはーw夢がひろがりんぐww
493デフォルトの名無しさん:2008/03/21(金) 17:03:04
>>491
Zaurusは大抵の処理系が何もしなくても動くだろ。
494デフォルトの名無しさん:2008/03/21(金) 17:13:08
>>493
なにもしなくても動けば結構なんだが、実際は結構手を加えてる。
495デフォルトの名無しさん:2008/03/21(金) 17:16:25
ZaurusもLinuxベースだからLinuxベースのLiMoとかNEOでもGaucheは動くんジャマイカ、常考。
496デフォルトの名無しさん:2008/03/21(金) 17:18:12
schemeでmaximaに相当するものってあるのでしょうか?
497デフォルトの名無しさん:2008/03/21(金) 17:22:12
ありません
498デフォルトの名無しさん:2008/03/21(金) 17:23:21
Maxima for WinCE
http://www.rainer-keuchel.de/wince/maxima-ce.html

コレはイイ!
499デフォルトの名無しさん:2008/03/21(金) 17:26:21
>>495
それで動かなければ何もしなくても動くとは言えない罠w
500デフォルトの名無しさん:2008/03/21(金) 18:23:22
http://www.shido.info/gb/guestbook.php?id=559
Scheme ⇒ define:letrec
Common Lisp ⇒ defun:Labels
501デフォルトの名無しさん:2008/03/21(金) 19:23:56
>>485
ANSI Cが引き受けてるって事じゃなくて、
処理系書く時には、メモリ利用、速度、起動速度などの効率を考えて、
いろいろ工夫をしたくなる。例えばANSI C未定義の振る舞いを利用したり、
プラットフォーム依存のAPIを使ったり。ANSI Cの範囲内でやるのを重視するか、
他のことを重視するかは処理系設計の問題。

ANSI Cがやるべきことを、ANSI Cが引き受けてるのは何でも同じ。

>>493
それが意外と動かない。
バイトオーダーが違うだけで駄目な処理系も多いし、
ヒープをダンプする仕組みがあると結構苦労する。
それから、過去レスで、メモリ空間の配置の違いで起きる
GCのバグが発見されたことがあったでしょ。

502デフォルトの名無しさん:2008/03/21(金) 19:27:20
>>500
下の二行を書く意味が分からない。
その対比は危険だという記事の主旨とは反するのに。
503デフォルトの名無しさん:2008/03/21(金) 19:35:11
「何も手を加えずとも○○で動く」といっても
開発者があらかじめ手を加えてるから動くものと
POSIX+ANSI-Cの範疇で書いてるから動くものとある罠。
PS2LinuxでUnix系を覚え
Debian玄箱を鯖に使い
OpenBSD-Zaurusを現在常用する為
必要以上に移植性を気にするようになってしまった。
PPC-OSXもXPもi386-Debianも持ってるんだけど
メジャー所の環境でしか動かないorバイナリしか提供されないものに食指が動かない。
504デフォルトの名無しさん:2008/03/21(金) 20:18:57
とにかく速いのが欲しい人と、どこでも動くのが欲しい人がいる
後者は「自分で作れるでしょ」ってことで放置されているのでは?
505デフォルトの名無しさん:2008/03/21(金) 21:04:57
>>503
動かない環境に移植するのもまた楽し。
506デフォルトの名無しさん:2008/03/21(金) 21:08:06
ソフトが移植されると生産終了が世の常。
507デフォルトの名無しさん:2008/03/21(金) 21:32:45
>>505
>>503はそんなこと言われなくても楽しんでる人間だと思うが?
508505:2008/03/21(金) 21:43:25
>>507
俺もそう思ったから書いたんだよ。何か問題?
509デフォルトの名無しさん:2008/03/21(金) 21:49:25
日本語でおk
510デフォルトの名無しさん:2008/03/21(金) 21:56:07
すべてのレスは反論だと思ってる人が来たみたいですね
511デフォルトの名無しさん:2008/03/21(金) 22:08:34
>>510
大人の世界では「ナカーマ」というのをああやって言い合うらしいYO!
512デフォルトの名無しさん:2008/03/21(金) 22:10:09
letcc の説明ワカラン orz
513デフォルトの名無しさん:2008/03/21(金) 22:12:05
同意に二重否定の反語形が元になっている慣用句を使うのも珍しいなあ。

二重否定と言えば、俺はremove-if-notをpreserve-ifに直したくなるなあ。
*-if-not系は混乱しちゃうんだな。
514デフォルトの名無しさん:2008/03/21(金) 22:16:25
「細かい事は気にするな
「混乱する様な部分は歴史が古い証拠

どっかの古参リスパがそう言っていましたよ
515デフォルトの名無しさん:2008/03/21(金) 22:21:32
>>498
これはおいらのWZero3[es] で動きますか?
516デフォルトの名無しさん:2008/03/21(金) 22:32:30
Seasoned Schemer のp.44の4番目のパラグラフがかすれてて読めないので教えてください。

4番目:「And it is what ・・・」
517デフォルトの名無しさん:2008/03/21(金) 22:33:58
>>515
ちょっと手を加える。そのサイトのどっかに書いてある。
518デフォルトの名無しさん:2008/03/21(金) 22:39:23
Pocket Scheme はなぜ出てこないんだろう?
519デフォルトの名無しさん:2008/03/21(金) 22:41:24
520デフォルトの名無しさん:2008/03/21(金) 22:41:24
>>518
お前が作らないから出てこないんだよ
521デフォルトの名無しさん:2008/03/21(金) 22:42:44
>>519>>520が同時刻の件。
522デフォルトの名無しさん:2008/03/21(金) 22:45:18
>>521
どうでもいい。ホンットどうてもいい。
523デフォルトの名無しさん:2008/03/21(金) 22:48:03
>>514
『"historucally reason" てのは
「海より深いわけがあって」と訳すんだ』
って, 教えてくれた先輩がいたのを思い出した
524デフォルトの名無しさん:2008/03/21(金) 22:49:19
>>522
もみ子じゃありません
525デフォルトの名無しさん:2008/03/21(金) 22:57:04
historucally reason, scheme programming is fun!
526デフォルトの名無しさん:2008/03/21(金) 22:59:24
アニメネタ禁止
527デフォルトの名無しさん:2008/03/22(土) 00:43:11
>>512
http://www.stdio.h.kyoto-u.ac.jp/~hioki/gairon-enshuu/SchemeNotes/continuation.html
の継続の説明と
>>214さんのレス見れば意味はワカルよ。define-syntaxとかの使い方はワカっとらんけど。
16章あたりは、おれには変態コードにしか映っていないw
Schemerシリーズって初心者onlyが対象ではない気もする。
C言語で言うとK&Rみたいなもんか。

>>516
左側
And it is what we got.
右側
Amazing! We did not do any intersecting at all.
528デフォルトの名無しさん:2008/03/22(土) 00:44:01
>>442レスいただけたら嬉しいです。
529デフォルトの名無しさん:2008/03/22(土) 01:38:36
>>527
>16章あたりは、おれには変態コードにしか映っていないw
Y! (=Y-bang)
530デフォルトの名無しさん:2008/03/22(土) 02:34:51
> 変態コード
Schemerシリーズ読んでも実践的には意味が無いってこと?
531デフォルトの名無しさん:2008/03/22(土) 02:39:58
あのくらい分からないで実戦も糞もない。
532デフォルトの名無しさん:2008/03/22(土) 03:11:45
変態だって実践に役に立つんですよ。
変態に対する偏見は捨てましょう。
533デフォルトの名無しさん:2008/03/22(土) 03:15:28
>>531-532
わかった。俺も変態になる!
534デフォルトの名無しさん:2008/03/22(土) 05:04:14
アッー!
535デフォルトの名無しさん:2008/03/22(土) 11:32:52
プログラミングGaucheのほうが全然簡単だわ。
536デフォルトの名無しさん:2008/03/22(土) 13:00:21
>>527
>左側
>And it is what we got.
>右側
>Amazing! We did not do any intersecting at all.

ありがとうございます。
537デフォルトの名無しさん:2008/03/22(土) 13:49:44
Seasoned Schemerの13章ぐらいまででYコンビネータとletrecの比較やletcc使った継続がでて来る。
Little Schemerの9章でYコンビネータの理解が不十分だったからちょっとムズかった。
その後にも>>529の書いてる変種のYコンビネータが出て来る。
Seasoned Schemerの主題は継続とクロージャーの理解。
これがわかると>>405のクロージャとオブジェクトも理解できる。CLOSに発展する話。
さらにReasoned SchemerでProlog入門を勉強した。Little Schemerの10章の発展版。
3冊通して話が出来てるからSICPとはまた違った楽しみがある。読んでよかった。
538デフォルトの名無しさん:2008/03/22(土) 13:52:48
だれか翻訳汁
539デフォルトの名無しさん:2008/03/22(土) 14:11:58
YコンがSchemeの働きを理解するために重要ってことでおk?
540デフォルトの名無しさん:2008/03/22(土) 14:13:02
日本語でおk
541デフォルトの名無しさん:2008/03/22(土) 14:17:16
Yコンビネータうざい
((lambda (f) (f f)) (lambda (f) (lambda (n) (if (= n 0) 1 (* n ((f f) (- n 1)))))))
でいいじゃん
542デフォルトの名無しさん:2008/03/22(土) 14:20:36
>>541
それでいいんじゃん。Littleは使い方ではなく仕組みを説明する本。勘違いするな。
543デフォルトの名無しさん:2008/03/22(土) 14:23:57
Littleで仕組みを理解して、SICPで使い方を覚えるって感じか。道のりは遠いなw
544デフォルトの名無しさん:2008/03/22(土) 14:37:33
1966年にP.J.LandinがISWIMという言語を作ったのがその起源で、SASL, Mirandaという後継言語を経て、HaskellとCleanが生まれました。
これらは、全て「遅延評価」を評価戦略におくプログラミング言語であり、「純粋関数型言語」と呼ばれるグループです。

ISWIM は、ラムダ計算の関数型コアを命令型言語の糖衣構文で包んだものである。
変更可能な変数と代入と強力な制御機構として Landin の J 演算子を追加してある
(J演算子は継続を可能としたもので、Scheme の call/cc は J 演算子を簡略化したものである)。
ラムダ計算に基づいているので、ISWIM は高階関数とスコープ変数を備えている。

このラムダ計算と等価なコンビネータ理論にYコンビネータは含まれます。
だからSchemeの継続の説明にYコンビネータが使われます。
545デフォルトの名無しさん:2008/03/22(土) 14:44:03
桶屋が儲かる

まで読んだ
546デフォルトの名無しさん:2008/03/22(土) 14:44:40
たいていのプログラミング言語は exit や return, 果ては goto のような名前の専用の脱出コンストラクトを 一つ以上採り入れている。
しかし,1965 年 Peter Landin は J 演算子という 汎用の脱出演算子を発明した。
John Reynolds はより単純だが同等に強力なコンストラクト を 1972 年に記述した。
Sussman と Steele によって 1975 年版 Scheme 報告書に 記述された catch 特殊形式は,Reynolds のコンストラクトと正確に 同じであるが,
ただしその名前は MacLisp の中のある汎用性の低いコンストラクトに由来している。
何人かの Scheme 実装者は,catch コンストラクトの完全な強力さを, 特別な構文のコンストラクトによるかわりに,
手続きによって用意できることに気付き,名前 call-with-current-continuation が 1982 年に新造された。
一部の人々は call/ccやletcc という名前をかわりに使っている。
547デフォルトの名無しさん:2008/03/22(土) 14:48:05
J 演算子とYコンビネータは関係なくね?
548デフォルトの名無しさん:2008/03/22(土) 15:04:17
549デフォルトの名無しさん:2008/03/22(土) 15:16:37
550デフォルトの名無しさん:2008/03/22(土) 15:30:03
>>528
(・∀・)人(・∀・)ナカーマ
でもまだp.40ぐらい。
551デフォルトの名無しさん:2008/03/22(土) 15:32:20
Gaucheでtanhが使えるので重宝してる。シグモイド関数結構使うんだよね。シンク関数も入ってるともっと良かった。
552デフォルトの名無しさん:2008/03/22(土) 15:36:50
>>442
パターン@はgobblerの定義時の1回だけxが導入される。
パターンAはnibblerが呼び出されるたびにxが導入される。
553デフォルトの名無しさん:2008/03/22(土) 16:29:46
>>552
レスありがとうございます。

gobblerも呼び出す度に、let式で毎回xには評価された値がセットされる
わけではないということなのでしょうか?
ただ、パターン@もパターンAも結果的に効果は同じのように思えるのですが
nibblerとgobblerを比較して何を言おうとしてるのかわかりません。

P101に以下のQAがあります。
Q
So what was the use of (let ...)
何がlet式を使用したのか?

A None. If (let ...) 省略 , they don't help us to remember things.
何も使用していない。もし、let式とset!式が間にlambda式無しで使用されるならば
あるものを記憶することの役には立たない。

パターン@だと値を保持しておくことができて、パターンAではできないと
いう意味だと思いますが、そうすると、パターン@(gobbler)を呼び出す度に、
毎回xには評価された値がセットされるわけではなく、gobblerを実行する度にxには
最後にset!された値が保持されているということになるのでしょうか?

554552:2008/03/22(土) 17:07:20
>>553
その本もって無いから意図はわからんが、
そのふたつのパターンの効果は同じではない。
たとえばこういう定義をしたとして、

(define gobbler
(let ((x 1))
(lambda ()
(set! x (+ x 1))
x)))

(define nibbler
(lambda ()
(let ((x 1))
(set! x (+ x 1))
x)))

それぞれを何度か評価してみると出てくる値は違う。

(gobbler) ⇒ 2
(gobbler) ⇒ 3
(gobbler) ⇒ 4
(nibbler) ⇒ 2
(nibbler) ⇒ 2
(nibbler) ⇒ 2

これがわかってないってことはlambdaがわかってないってことだぞ。
100ページまで読んでその程度とはずいぶんのんびりした本だな。
555デフォルトの名無しさん:2008/03/22(土) 17:26:34
>>554
たびたびありがとうございます。

例に挙げていただいたgobblerのほうでは
let式でのxへの1のセットはgobbler定義時に一度だけ
ということですね。nibblerには疑問ありません。
let式の内部名(x)に評価された値(1)がいつセットされるのかがわかってませんでした。


>100ページまで読んでその程度とはずいぶんのんびりした本だな。
いえ、著者は説明してるはずですが自分が読解できてないだけです。。
556デフォルトの名無しさん:2008/03/22(土) 17:49:23
let式の内部名(x)はC言語などでいう自動変数だと
思ってたのですが違うんですね。変数のスコープとか
let式の評価のタイミングとかが分かってないと思います。
557デフォルトの名無しさん:2008/03/22(土) 18:00:59
クロージャか、ここ見てみれ
ttp://www.geocities.jp/m_hiroi/func/abcscm10.html
558552:2008/03/22(土) 18:01:46
変数のスコープはletのbody部を抜けるまでだけど、
Cとかと違って寿命は無い。
無限に存在し続ける(かのように振舞う)。
これはJavaScriptとかでも同じ。
無限エクステントと呼ばれている。
559デフォルトの名無しさん:2008/03/22(土) 18:32:35
>>557
ありがとうございます。
もうクロージャという領域の話しなんですか。
確認しておきます。

>>558
>Cとかと違って寿命は無い。
>無限に存在し続ける(かのように振舞う)。
なるほど。Cでいえば関数ローカルのなstatic変数
みたいなものですかね。
560552:2008/03/22(土) 18:37:55
>>559
> なるほど。Cでいえば関数ローカルのなstatic変数
> みたいなものですかね。

「みたいなもの」とかいう形で理解するのはやめた方がいいぞ。
本質的に違うものを置き換えて理解してるとそっちのスタイルに
引きずられる。中途半端にしかわからんようになって破綻する。
561デフォルトの名無しさん:2008/03/22(土) 18:49:47
無限エクステントって、Common Lisp やScheme(Gauche)ではサポートしてるけど、Emacs Lispではしてないんだよなぁ。
562デフォルトの名無しさん:2008/03/22(土) 19:00:09
昔のLispはダイナミックスコープだからね
563デフォルトの名無しさん:2008/03/22(土) 20:08:12
glint使うとExcelイルカみたいに変なオジサンが登場して説明しはじめる機能はOFFに出来るの?
564デフォルトの名無しさん:2008/03/22(土) 20:19:24
>>560
確かに対比すると混乱するのでやめます。

gobblerとnibblerの違いは>>557のクロージャの説明で理解できました。

関数gobblerを定義する。
クロージャ
→lambda式
→環境 (x = 1)
を生成する。
gobblerを一度実行する(クロージャ実行)と、lambda式を評価し環境を(x = 2)に更新する。
gobblerを再度実行する(クロージャ実行)と、lambda式を評価し環境を(x = 3)に更新する。

関数nibblerを定義する。
クロージャ
→lambda式
→環境なし(局所変数は無いので)
を生成する。
nibblerを一度実行(クロージャ実行)すると、lambda式を評価する。
nibblerを再度実行(クロージャ実行)すると、lambda式を評価する。

ということですね。
565552:2008/03/22(土) 20:32:01
>>563
変なオジサンいうなw
誰だかわかって言ってるのか?wwww
566デフォルトの名無しさん:2008/03/22(土) 20:33:51
>>563
あれ、単にデモ用に作っただけなので、glintには入っていません。

567デフォルトの名無しさん:2008/03/22(土) 20:34:31
環境なしというのはおかしいですね。

nibblerではlambda式を評価するときに環境(常に x = 1)があります。
(その環境の下でlambda式が評価される)
568デフォルトの名無しさん:2008/03/22(土) 21:03:17
(define func
(lambda (x) ......))

のような大域関数を定義するということは、クロージャを生成してる
と考えてよいのですか?
569デフォルトの名無しさん:2008/03/22(土) 21:11:19
Gauche本62ページに手続きオブジェクトととして説明がありました。
クロージャに名前をつけているだけでした。
570デフォルトの名無しさん:2008/03/22(土) 21:14:13
>>563
shiroさんカワイソスw

gobblerは環境(x=1)を持ったlambda式を定義して
それにアクセスすることによりx=2,3,4...となっている。
nibblerは単にlambda式の中にローカルな変数を作ってるだけね。
571デフォルトの名無しさん:2008/03/22(土) 21:23:55
やっとAmazonからgauche本のお支払い番号きたーーーーー

572デフォルトの名無しさん:2008/03/22(土) 21:40:36
いや、shiroさんが変だというのではなくてさ、
あれ、キャラが一人歩きしてるじゃん。変なオジサンというキャラで。てか狙ってるだろw
あの機能は実装してくっ付けるとシュールでいいんジャマイカ?
気分害したら何なのでキャラは変更できるようにしておくとかw
573デフォルトの名無しさん:2008/03/22(土) 21:54:30
>>570
理解できました。ありがとうございました。
574デフォルトの名無しさん:2008/03/22(土) 21:58:05
cbook24に入荷したみたいだな。24時間以内発送だって。
575デフォルトの名無しさん:2008/03/22(土) 22:05:42
>> 572
動かすのにWebカメラが必要なのと、あまりに実用性
なさ過ぎなのでglintには含めることはないのですが、
あのキャラクタ表示プログラム自体はGauche-ARToolKitの
example/avatar/ に入っています
(さすがに顔はへのへのもへじに変更してありますが)。

avatar.scmを起動するとポート12345で待ち受けるので、
telnetなりなんなりで接続して以下のコマンドを送りつけると
いろいろ動きます。

(show-avatar) ;; キャラクタを表示する
(hide-avatar) ;; キャラクタを非表示にする
(show-text) ;; テキスト画面を表示する
(hide-text) ;; テキスト画面を非表示にする
(clear-text) ;; テキストを消去する
(say n text) ;; n行目にtextを表示する(UTF-8で送れば日本語もOK)
(right-arm n) ;; 右手をn度上に上げる(0が水平)
(left-arm n) ;; 左手をn度上に上げる(0が水平)
(head n) ;; 頭をn度回転させる(0が正面)

あと、256x256のSGI RGB Imageフォーマットで
face.rgbを作れば顔のテクスチャが変わります。
Wavefront形式のOBJ&MTLフォーマットを読める
ようにしてあるので、自分でモデリングすることも
一応できます(プログラムも変えないと駄目だけど)。

デモではglintの出力結果を正規表現で日本語に変換して
適当なモーションを付けてavatar.scmにつなげました。


576デフォルトの名無しさん:2008/03/22(土) 22:22:01
>>575
思った以上に細かく動かせるので笑えました。
プレゼンの隠し味的に使うのが流行ると面白いですね。
577デフォルトの名無しさん:2008/03/22(土) 22:22:34
>>575
Lispコミュニティはアカデミックで凄い感じの人が多いけど、
glintの中の人は別の意味ですごいなw
次回も期待してるぜ!
578デフォルトの名無しさん:2008/03/22(土) 22:32:19
glintのデモ見てSchemeの勉強初めたんですが、標準ではあの動きはないんですか…ちょと残念。
「使ってみたくなるlint」というのは斬新ですね。
579デフォルトの名無しさん:2008/03/23(日) 20:47:32
現実世界じゃLispを使っている人をあまり見かけないけれど
ここだとずいぶん人気があるんだね。驚いたよ。
580デフォルトの名無しさん:2008/03/23(日) 20:55:48
初めてのプログラムにLispを選んだぜ
よろすく
581デフォルトの名無しさん:2008/03/23(日) 21:37:19
質問です。
gaucheでもって、Cで言う
printf("%10.3f", x);
みたいなことは、どうやればできるのでしょうか。

schemeの勉強がてら、stlファイルを読んで、vtkファイルを生成したろ、と
思ったんですが、バイナリファイルを読むのは簡単だったのに、ASCIIファイルを
書き出すのにつまづいてます....orz
582552:2008/03/23(日) 21:53:25
マニュアルに書いてあることを質問するのはなんでかな?
http://practical-scheme.net/gauche/man/gauche-refj_174.html
要するにお前らは学ぶ気なんて無いんだな。
583デフォルトの名無しさん:2008/03/23(日) 22:27:34
マニュアルをちゃんと見れと言うのは同意だけど
学ぶ気が無いとかイライラするのもどうかと思うよ。
マターリいこうぜ。

まぁ本当にただの教えて君だったらスルーすればいいだけのこと。
584デフォルトの名無しさん:2008/03/23(日) 22:50:49
>>579
そこは現実世界じゃない。早く目を覚ませ。
585デフォルトの名無しさん:2008/03/23(日) 22:54:10
lambda と書かれた赤いピルを服用するんだな
586デフォルトの名無しさん:2008/03/23(日) 22:54:58
>>582
「gauche(のformat)には、実数のフォーマット出力機能はないから
SLIBのprintf系使っとけ」ってことですね。どもです。

「せっかくformatがあるのに、部分的にprintfかぁ」
っと思ったら、gaucheのformatには無い「F」のフォーマット指定子がSLIBのformatには
あることを見付けました。
http://www-swiss.ai.mit.edu/~jaffer/slib_4.html#SEC57

(use slib)
(require 'format)
(format #f "~10,3F" 32.4)
=> " 32.400"

formatかprintf系か、どちらかで統一してコードを書いていけばよいのだと思いますが、
とりあえず、formatで統一して書いてみることに挑戦してみてから、どちらがいいか
考えてみます。
587デフォルトの名無しさん:2008/03/23(日) 23:01:52
似てるけど決定的に違うもののリスト

Scheme ⇒ define:letrec :無限エクステント
Common Lisp ⇒ defun:labels:無限エクステント
Emacs Lisp ⇒ defun:labels:ダイナミックスコープ

>>442-573みたいな話はLisp系でも処理系によって結果が異なるからポートするときは要注意!
安易にdefine⇒defunとかletrec⇒labelsとかやりがちw
588デフォルトの名無しさん:2008/03/23(日) 23:25:43
それを言うならC++とJavaとC#のclassも要注意ではないのか
589デフォルトの名無しさん:2008/03/23(日) 23:29:53
>>588
それがこのスレに重要?
590552:2008/03/23(日) 23:41:44
>>586
Gaucheに限るならwriteをカスタマイズすることも出来るでよ。

(define-class <num10-3> ()
((n :init-keyword :n :init-value 0 :getter n)))

(define-method num10-3 ((num <number>))
(make <num10-3> :n num))

(define-method write-object ((object <num10-3>) (port <port>))
(let ((num (n object)))
(format port "~10d." (truncate->exact num))
(format port "~d" (- (truncate->exact (* 1000 num))
(* (truncate->exact num) 1000)))))

(format #f "~a" (num10-3 32.4))
591デフォルトの名無しさん:2008/03/23(日) 23:45:52
>>589
ある意味重要かも。
ちゃんとマニュアル読めばわかるはずなんだけど、
クラス指向のオブジェクトシステムとは全然違うって
ことを意識してないと絶対混乱する。
592デフォルトの名無しさん:2008/03/23(日) 23:54:53
通じてないなw
593デフォルトの名無しさん:2008/03/23(日) 23:58:07
>>583 = >>592
>ちゃんとマニュアル読めばわかるはずなんだけど、

くやしいのうw
594デフォルトの名無しさん:2008/03/24(月) 00:00:48
マニュアル読んだけどワカンナカッタンダモン

              -― ̄ ̄ ` ―--  _
          , ´         ,    ~  ̄、"ー 、
        _/          / ,r    _   ヽ ノ
       , ´           / /    ●   i"
    ,/   ,|           / / _i⌒ l| i  |
   と,-‐ ´ ̄          / / (⊂ ● j'__   |
  (´__   、       / /    ̄!,__,u●   |
       ̄ ̄`ヾ_     し       u l| i /ヽ、
          ,_  \           ノ(`'__ノ
        (__  ̄~" __ , --‐一~⊂  ⊃_
           ̄ ̄ ̄      ⊂ ̄    __⊃
                   ⊂_____⊃
595デフォルトの名無しさん:2008/03/24(月) 00:01:48
図星だったぽい・・・
596デフォルトの名無しさん:2008/03/24(月) 00:02:01
>>593
ちがう人だよ
597デフォルトの名無しさん:2008/03/24(月) 00:03:37
>>588
スレタイ読める?
598583:2008/03/24(月) 00:04:02
クマ泣くなw

あと俺は592じゃないよ。
599デフォルトの名無しさん:2008/03/24(月) 00:04:21
× >>583 = >>592
○ >>583 = >>591
600デフォルトの名無しさん:2008/03/24(月) 00:05:12
誤解が解けて嬉しい
601583:2008/03/24(月) 00:07:30
ん?591でもないんだがな。
602デフォルトの名無しさん:2008/03/24(月) 00:14:15
>>597
それ!
603デフォルトの名無しさん:2008/03/24(月) 00:21:10
クマ、純粋だなw
604デフォルトの名無しさん:2008/03/24(月) 00:25:33
マジレスすると、要注意っぷりを参考にするんだ
特定の言語によらない抽象的なものの考え方が必要なんだ
605デフォルトの名無しさん:2008/03/24(月) 00:36:22
バカの壁w
606デフォルトの名無しさん:2008/03/24(月) 00:40:46
>>605
そうやって相手は馬鹿だから…と納得しようとすることこそが馬鹿の壁なんだよ
よくある誤解だけど
607デフォルトの名無しさん:2008/03/24(月) 00:50:03
KY
608デフォルトの名無しさん:2008/03/24(月) 01:24:47
KY combinator
609デフォルトの名無しさん:2008/03/24(月) 01:25:03
珊瑚がどうしたって?>>607
610デフォルトの名無しさん:2008/03/24(月) 01:28:26
「○○○の考え方が必要なんだ」とか押し付けがましいこと言える奴って自分を傲慢とは思わないんだろうなw
611デフォルトの名無しさん:2008/03/24(月) 01:33:53
Lisp Scheme からだいぶそれてるなw
612デフォルトの名無しさん:2008/03/24(月) 06:05:24
>>610
まぁ、そんなんで「押しつけられた!」とか思う奴がいたらビョーキだし、
ビョーキの人の言うことを気にして「何も意見を言わない」方針をとったってしょうがないからね。
613デフォルトの名無しさん:2008/03/24(月) 07:11:24
>>539
正直、
> YコンがSchemeの働きを理解するために重要
ってことはない。

しかしYコンビネータさえ理解できない人間は、
Schemeを使いこなすのは厳しいだろう。
614デフォルトの名無しさん:2008/03/24(月) 07:14:09
>>613
その「Schemeを使いこなす」はどの程度を言うのかはっきりさせてくれないと
肯定も否定もしようがない。
615デフォルトの名無しさん:2008/03/24(月) 07:19:22
仕組みを理解する(>>542)と言っても、
それはλカリキュラスの仕組みであって、
Schemeは再帰にYコンビネタ使ってないしねえ。
616デフォルトの名無しさん:2008/03/24(月) 07:24:33
>>613がSchemeを使いこなして何やってるのかが気になる。
617デフォルトの名無しさん:2008/03/24(月) 09:22:34
Yコンビネータの導出が数学の証明問題に似ていると感じるんですが。
618デフォルトの名無しさん:2008/03/24(月) 18:06:10
>>615
読んでないなw
619デフォルトの名無しさん:2008/03/24(月) 18:14:00
やっとAmazonからgauche本
発送されたああああああ
620デフォルトの名無しさん:2008/03/24(月) 18:29:13
>>619
2刷だったら激しく嫉妬w
621216:2008/03/24(月) 19:54:58
>>620
ミスプリの修正は間に合ってませんでした、ってオチで。
ってぇか未だ増えそう。もう落ち着いたの?
622デフォルトの名無しさん:2008/03/24(月) 21:29:36
>>621
ミスプリの修正は間に合ってなくて、でも追加(glintとか)があって第二版になってたらいいのにw
623デフォルトの名無しさん:2008/03/24(月) 21:42:31
Gaucheのlet/ccってマクロスダタノカ orz
624デフォルトの名無しさん:2008/03/24(月) 22:40:33
じくうようせいと学ぶ・・・
625デフォルトの名無しさん:2008/03/24(月) 23:03:36
>>618
トイ・プログラミング以外で、
Yコンビネーターで再帰関数定義する人なんてほとんどいないでしょう?
626デフォルトの名無しさん:2008/03/24(月) 23:09:37
>>625
質問が頓珍漢w
627デフォルトの名無しさん:2008/03/24(月) 23:14:05
コンパイラを作るときなんかには、
そういう形式が便利なこともある。
直接Yコンビネータな形でプログラムを書かなくても、
使われて無いとか、役に立たないってことは無いんだよ。
628デフォルトの名無しさん:2008/03/24(月) 23:22:30
猫にコンパイラ・・・
629デフォルトの名無しさん:2008/03/24(月) 23:29:56
>>627
具体的にはどういう使い方?
630デフォルトの名無しさん:2008/03/25(火) 00:00:08
ぶどう畑で、たわわに実ったおいしそうなぶどうをキツネが見つけた。
食べようとして跳び上がるが、ぶどうの房はみな高い所にあり、届かない。
何度跳躍してもついに届かず、キツネは怒りと悔しさで、


「どうせこんなぶどうは、すっぱくてまずいだろう。誰が食べてやるものか」


と捨て台詞を残して去ってゆく。
手に入れたくてたまらないのに、いくら努力しても手が届かない対象(人、物、地位、階級など)がある場合、
その対象を価値の無いもの、低級で自分にふさわしくないものとみなす事であきらめ、心の平安を得る。
フロイトの心理学において防衛機制、合理化の例として有名。
また、英語圏において"Sour Grapes"は「負け惜しみ」を意味する熟語にもなっている。
631デフォルトの名無しさん:2008/03/25(火) 00:14:20
オマエラには高度すぎて例え話がお似合いだそうです。
632デフォルトの名無しさん:2008/03/25(火) 00:19:22
例え話≠イソップ童話
633デフォルトの名無しさん:2008/03/25(火) 00:33:52
イソップうううううう!!!
634デフォルトの名無しさん:2008/03/25(火) 00:37:11
愛は奇蹟を信じる力よ
635デフォルトの名無しさん:2008/03/25(火) 00:48:58
108−0
636629:2008/03/25(火) 00:50:53
いや、そんなことはいいからw
Yコンビネタをコンパイラでうまく使ったケースを教えてくれ。

昔、SKIYコンビネタの処理系や
Lisp1.5風で再帰だけYコンビネータ使う処理系を作ったことあるが、
Yコンビネタに変換するところが一番面倒。
プログラマがYコンビネタを明示的に使うのはプログラミングが面倒だし。
しかも再帰の展開遅くてメリットなし。
環境/シンボルテーブル・ルックアップで、
再帰を実現した方がよい。

部分計算でインタプリタからコンパイラを導出するような研究でも、
Yコンビネタを有効に使ったのはまだ見たことない。

面白いのがあれば論文を教えて。
637デフォルトの名無しさん:2008/03/25(火) 00:53:22
なんか喧嘩腰の人だなあ
638デフォルトの名無しさん:2008/03/25(火) 00:54:54
ここでシャルル・ペローの童話からうまいこと言う
 ↓
639デフォルトの名無しさん:2008/03/25(火) 01:13:08
才能無いんじゃねえの常考。
640デフォルトの名無しさん:2008/03/25(火) 01:14:00
ゼロの人間なのか?
641デフォルトの名無しさん:2008/03/25(火) 01:23:53
>>629が関数型では効率の悪いアルゴリズムに精通していないに1000点
642デフォルトの名無しさん:2008/03/25(火) 01:24:07
643デフォルトの名無しさん:2008/03/25(火) 02:09:35
Yコンビネータを活用出来なくても許されるのは中1までクマ。
644デフォルトの名無しさん:2008/03/25(火) 02:14:48
英語読むのしんどいからどの程度のことができるのか説明してよ
645デフォルトの名無しさん:2008/03/25(火) 02:29:12
>>641
Yコンビネータを絡めてkwsk
646デフォルトの名無しさん:2008/03/25(火) 04:25:04
Y in Practical Programs
ttp://citeseer.ist.psu.edu/mcadams01practical.html
Yはプログラムの構造を柔軟にし,部品化を促進するためのグルーだという話ですね
647デフォルトの名無しさん:2008/03/25(火) 04:44:39
>>646
"recursive monadic bindings"に萌えた
648デフォルトの名無しさん:2008/03/25(火) 05:33:42
>>646
正直、そういう用途なら hook とか advice みたいな仕組みのほうが有効だと思う。
直接呼び出す場合ならいいけど、間に他の関数が入ったりすると困難になりそう。

そういう使いかたは思いつかなかったから、面白かったけどね。
649デフォルトの名無しさん:2008/03/25(火) 10:15:49
と・ ・つ
|Y|
650デフォルトの名無しさん:2008/03/25(火) 12:32:00
YコンビネータのYにはどういう意味があるんだ?
651デフォルトの名無しさん:2008/03/25(火) 13:22:59
ワイはコンビネータや。
652デフォルトの名無しさん:2008/03/25(火) 13:35:30
で敵はXか
653デフォルトの名無しさん:2008/03/25(火) 13:49:16
ちょwできすぎww
654デフォルトの名無しさん:2008/03/25(火) 14:52:42
ひょっとしてコンビネータ猿?
655デフォルトの名無しさん:2008/03/25(火) 18:54:12
旗包み(closure)
656デフォルトの名無しさん:2008/03/25(火) 20:36:27
プログラミングGaucheの第2刷ってもう出てんの?
657デフォルトの名無しさん:2008/03/25(火) 22:05:41
ここのスレ住人は ocaml やら F# には興味ないんですか?
658デフォルトの名無しさん:2008/03/25(火) 22:13:49
たとえあったとしても、それぞれに該当するスレで書き込んでるんじゃないの。

すれ違いになるジャン。

ってか、人それぞれだろ。
659デフォルトの名無しさん:2008/03/25(火) 22:22:01
比較した意見は聞いてみたいな。自分はHaskell勉強中だけど、Haskellが
いいと思うのは、型の存在かなぁ。

自分は関数型まだまだ初心者なんですけど、Lisp、Schemeの人々って
型についてはどう考えてるんでしょうか?Schemeは凄い美しいと思うんですけど
その辺の融通無碍なところは現実の開発の時に結構厄介じゃないかな、とか
思ってしまうのですが。
660デフォルトの名無しさん:2008/03/25(火) 22:45:01
>>659
何が言いたいのかわからんが、common lispは型指定できるし、
高度な最適化がされるコンパイラでは型推論もするぞ。
Scheme の処理系独自で型を指定して高速化するような処理系もある。…とおもった。
661デフォルトの名無しさん:2008/03/25(火) 22:54:15
Haskellの型はある種の正しさを証明する手段だけど、
CommonLispの型は高速化(チューニング)の手段と考えられていると思う。
それぞれの言語で型に対する姿勢も違う。
662デフォルトの名無しさん:2008/03/26(水) 00:26:57
Haskellユーザーの>>659の言ってるのはたぶん一般的にSchemeはコンパイル時に型チェックされないと思われてるということかな?
663デフォルトの名無しさん:2008/03/26(水) 00:33:15
Scheme のテストコード書いたり、簡単な実行したりコードさらしたりするにはここへカモン。
http://codepad.org/
コードを書いて実行した時のURLを記録しておけば、
実行結果も一緒にさらす事が出来て幸せです。

664デフォルトの名無しさん:2008/03/26(水) 00:54:55
>>663
((lambda (x) (+ x 1)) 0)

結果がでない orz
665デフォルトの名無しさん:2008/03/26(水) 01:02:27
>>664
(display がぬけてる
666デフォルトの名無しさん:2008/03/26(水) 01:03:01
>>663
Schemeインタプリタみたく、評価した式の値も表示してくれるのかと思いきや、
Outputに出てくるのはstdoutに書き出した内容だけなのね;
667デフォルトの名無しさん:2008/03/26(水) 01:40:53
>>665d。改行がメンドクサイねw

(define Y
(lambda (X)
((lambda (procedure)
(X (lambda (arg) ((procedure procedure) arg))))
(lambda (procedure)
(X (lambda (arg) ((procedure procedure) arg)))))))

(define (Fact my-fact)
(lambda (n)
(if (= n 0)
1
(* n (my-fact (- n 1))))))

(define fact (Y Fact))

(define (Fib my-fib)
(lambda (n)
(if (<= n 1)
1
(+ (my-fib (- n 1))
(my-fib (- n 2))))))

(define fib (Y Fib))

(display (fib 10))
(display "\n")
(display (fact 10))
668デフォルトの名無しさん:2008/03/26(水) 03:30:52
669デフォルトの名無しさん:2008/03/26(水) 05:48:47
自分がSchemeやってるときに、同級生のHSP厨が
「何その括弧だらけのソース(笑)、もっとゲームとか実用的なもの作ればぁ?」
どう対応すればいいですか・・・
670デフォルトの名無しさん:2008/03/26(水) 06:09:16
苦笑
671デフォルトの名無しさん:2008/03/26(水) 06:39:41
鼻で笑って終了
672デフォルトの名無しさん:2008/03/26(水) 06:47:00
括弧がどうのというのは未経験者のお約束として、
ゲームに対して「実用」っていう表現が出てくるのが実に子供らしいと思った。
673デフォルトの名無しさん:2008/03/26(水) 07:30:37
HSP
レISP
LISP
674デフォルトの名無しさん:2008/03/26(水) 08:28:53
HSPは実用的だったのか。
675デフォルトの名無しさん:2008/03/26(水) 09:06:21
実用かどうかはわからんけど、ゲームの中身は意外と馬鹿に出来ない。
676デフォルトの名無しさん:2008/03/26(水) 12:22:59
HSPと馬鹿に出来ないゲームの中身とは関連が薄いかと
677デフォルトの名無しさん:2008/03/26(水) 12:39:44
感心のベクトルの問題だあね

「不自由なHSPなんかでここまでやるか」

「わざわざLispなんかでここまでやるか」
はベクトル一緒のような気もする
678デフォルトの名無しさん:2008/03/26(水) 13:30:50
Schemeによる記号処理入門
http://www.amazon.co.jp/dp/4627836708/

この本はどうですか?
Schemeを習得するのに価値ある本?
679デフォルトの名無しさん:2008/03/26(水) 13:48:22
>>669
Schemeでゲームとか実用的なものを作れば良いのでは?w
680デフォルトの名無しさん:2008/03/26(水) 13:51:49
681デフォルトの名無しさん:2008/03/26(水) 14:00:45
Schemeでchessとかオセロとか将棋とか作ったら
お友達は「実用的」と認めてくれるかなw?
682デフォルトの名無しさん:2008/03/26(水) 14:02:17
wうぜえ
683デフォルトの名無しさん:2008/03/26(水) 15:24:40
Schemeぢゃないけどこんなの思い出した

ttp://jp.franz.com/base/seminar/2005-11-18/SeminarNov2005-Abe.pdf
684デフォルトの名無しさん:2008/03/26(水) 16:29:16
実際の話、ゲーム廚を納得させるには
グラフィックスバリバリ(笑)のゲームを作るしかない。
いかに有用なツールを作っても、彼らには興味がない。
なぜならゲーム以外のことに興味が向いてないから。
だからグラフィックスバリバリ(笑)のゲームを作るしかない。

まあ相手にしないという手もある。
685デフォルトの名無しさん:2008/03/26(水) 16:46:37
通常のLisp処理系とは違い、
Schemeのスコープはレキシカルスコープだということですが、
lambda関数の仮引数や、そのlambda式の中でdefineやletを使用して
局所的に定義された変数は全て、関数実行中だけ存在していて、
関数終了後は消滅すると考えてよいのですか?



(define func
 (lambda (x)
  (define z ....)
  (let ((y ....))

 ....)))

x, y, z は func 実行中だけ存在している??
 
686デフォルトの名無しさん:2008/03/26(水) 16:54:32
無限エクステント!
687デフォルトの名無しさん:2008/03/26(水) 16:59:59
>>685
他から参照されてないなら、関数から抜けてGCされるまで存在する。
スタックに割り当てられるような場合は抜けるときに消えるかもしれんが処理系依存。
でも普通ダイナミックスコープなlispでも局所定義された変数は関数抜けたら消えるぞ。
688デフォルトの名無しさん:2008/03/26(水) 17:09:38
無限エクステントでググったら
寿命は無限で、スコープは有限ということがわかりました。
689デフォルトの名無しさん:2008/03/26(水) 17:11:40
>>688
消滅しない。そういうのを無限エクステントという。
長くなるのであまり説明したくないけど、
仮に、そのfuncからx y zを含むクロージャ
(lambda (w) (list w x y z))とかを返したりすれば、
x y zはスタックからひっぺがされ、そのクロージャから
見える無限の領域(具体的にはヒープなど)に引き込まれる。
これは振舞いの説明であって、x y zを複製するという意味ではない。
C言語やPascalなどは関数呼び出しが終わってスタックが
撒き戻るとそのローカル変数なども無効になってしまうが、
schemeでは参照が残る限り有効になる。
690デフォルトの名無しさん:2008/03/26(水) 17:15:19
(define func
 (let ((y ...))
  (lambda (x)

 ....)))

のような場合、yはクロージャの環境として必要なので、
GCの対象ではないですよね?
691デフォルトの名無しさん:2008/03/26(水) 17:17:29
>>687
処理系依存とかいい加減なこと言うなよ。
692デフォルトの名無しさん:2008/03/26(水) 17:18:27
>>689
なるほど。
C言語との違いがわかりました。
693デフォルトの名無しさん:2008/03/26(水) 17:19:25
>>690
どの時点で?
lambda 式内部でも y が参照されないことが明確なら GC されるかもしれないし、
されないかもしれないし。
694デフォルトの名無しさん:2008/03/26(水) 17:25:46
>>690
GCを意識する必要はない。
スタックが撒き戻るから云々みたいなことを考えなくて良い。
C言語とかしらないアホな子でも扱えるようになってる。
695デフォルトの名無しさん:2008/03/26(水) 17:28:33
そういうアホな子がschemeからC言語に転向したりすると
非常にヤバイコードを書くかもしれない。
この子天才なんじゃね?と親は大喜び。
696デフォルトの名無しさん:2008/03/26(水) 17:29:28
参照できないものは、どうなっても関係ないから、
GCされるとかされないとか、意味論的には考える必要ない。

効率や実装技術を語りたければ、考える必要がある。

Lisp/Schemeは明示的なオブジェクト消去操作のない言語なので、
(処理系依存のmemハック系関数は除く)
参照方法があるものは必ず存在する。

697デフォルトの名無しさん:2008/03/26(水) 17:33:09
>>696
> Lisp/Schemeは明示的なオブジェクト消去操作のない言語なので、
古めの lisp は makunbound か fmakunbound で消去できるんじゃないか?
698デフォルトの名無しさん:2008/03/26(水) 17:34:27
(define g 0)

(define func
(lambda (x)
(define y 'yyy)
(let ((z g))
(lambda ()
(list x y z)))))

gにset!を適用し値を変更すると、funcが呼び出されるたびに
zが変わるということはlambda関数内部のdefineやletは
関数呼び出しのたびに評価されているということですね。

(define func
(let ((z g))
(lambda (x)
.........
とは動きが違いますね。

この場合はlet式がlambda関数の外部に
あるためlet式の評価は(define func ....)
の評価時に一度だけになるということですね。
699デフォルトの名無しさん:2008/03/26(水) 17:37:37
>>684
グラフィックバリバリ(笑)なら、まさにLispの得意分野だな。
かつてシンボリックスは世界のCG界を支配してたわけだし。(やや誇張)
700デフォルトの名無しさん:2008/03/26(水) 17:42:55
AutoCADはLispなんだよ!みたいな
701デフォルトの名無しさん:2008/03/26(水) 17:44:55
>>693
もしGCされたらyは、その時点での最新の値で再評価されるということですよね。
(この場合、yは大域の何かを参照しているとして)

>>694
GCされてしまったら値が無効になるので、保存されていた値が
消えてしまうのでは?と思いましたが、lambda関数の外部のlet
の場合は再評価すれば済みますね。

ありがとうございました。
702デフォルトの名無しさん:2008/03/26(水) 17:48:05
>>696
>参照方法があるものは必ず存在する。

理解できました。
703デフォルトの名無しさん:2008/03/26(水) 18:12:29
クロージャ=lambda式+環境
funcはクロージャを返す。その時点での環境を考えれば
GC云々を考慮しなくても大丈夫でした。
704デフォルトの名無しさん:2008/03/26(水) 18:14:48
>>697
オブジェクトを消すのとは違うじゃん。
705デフォルトの名無しさん:2008/03/26(水) 18:36:06
ttp://codepad.org/7eADNOKr
HtDP p.554

(define x 5)
(display (+ (begin (set! x 11) x) x))
(newline)
⇒22
706デフォルトの名無しさん:2008/03/26(水) 18:42:47
ttp://codepad.org/2qFN6kWU
HtDP p.7

(display (- #i1.0 #i0.9))
(newline)
⇒0.09999999999999998

結果に#iが付いてない。DrSchemeだと付いてる。Gaucheではどうなんだろ?
707デフォルトの名無しさん:2008/03/26(水) 19:20:28
>>678
Little Schemer→Seasoned Schemer→SICP or HtDP or Simply Scheme or Schemeによる記号処理入門
708デフォルトの名無しさん:2008/03/26(水) 20:25:35
(define λ lambda) ってしてみた。入力がめんどくさいだけだった。
と、gauche始めたばかりの初心者(みんな試しちゃうよね?)
709デフォルトの名無しさん:2008/03/26(水) 20:26:07
試しません
710デフォルトの名無しさん:2008/03/26(水) 20:32:57
711デフォルトの名無しさん:2008/03/26(水) 20:51:32
>>706
Gaucheでは返り値に#iの表示はない。知りたければinexact?を使えばいい。

(display (inexact? (- #i1.0 #i0.9)))
(newline)
⇒#t
712デフォルトの名無しさん:2008/03/26(水) 21:07:52
もしかしてcodepadの中身Gaucheじゃねえ?
713デフォルトの名無しさん:2008/03/26(水) 21:48:45
ttp://codepad.org/SPiIJFUX
マクロが使えたw

(define-syntax log-expr
(syntax-rules ()
[(log-expr form)
(let ((result form))
(print 'form " => " result)
result)]
))




(fact 10) => 3628800
(fib 10) => 89
714デフォルトの名無しさん:2008/03/27(木) 01:23:11
.emacsの設定をwebからコピペしてきても全然動かなかった。
よくみるとバックスラッシュが¥マークになってた。
.emacsの設定が反映されなかった。よくみると.emcasになってた。
これが今日一日の俺の成果。もう寝る。
715デフォルトの名無しさん:2008/03/27(木) 01:26:21
全米が泣いた
716デフォルトの名無しさん:2008/03/27(木) 01:30:12
>>714
>よくみるとバックスラッシュが¥マークになってた。

全角になってたって事か…
717デフォルトの名無しさん:2008/03/27(木) 01:42:19
U+00A5 になったんじゃね?
718デフォルトの名無しさん:2008/03/27(木) 01:43:11
714かわいいよ714
719デフォルトの名無しさん:2008/03/27(木) 02:41:30
ttp://codepad.org/8AuFIHAS

Gaucheじゃないらしい。SRFIがuseできない。
ttp://codepad.org/GAIimBRt
720デフォルトの名無しさん:2008/03/27(木) 08:43:52
>>719
plt みたいだね。
http://codepad.org/GQuSoQ3U
721デフォルトの名無しさん:2008/03/27(木) 16:04:06
XyzzyのSchemeモード持ってる(使ってる)方いらっしゃいますか?
722デフォルトの名無しさん:2008/03/27(木) 17:31:08
男ならEdwin
723デフォルトの名無しさん:2008/03/27(木) 17:40:25
724デフォルトの名無しさん:2008/03/27(木) 20:09:49
>>719
×
(use srfi-13)
(use util.list)


(require (lib "13.ss" "srfi"))
(require (lib "pregexp.ss" "mzlib"))
(require (lib "list.ss" "mzlib"))
(require (lib "string.ss" "mzlib"))
725デフォルトの名無しさん:2008/03/27(木) 20:58:06
726デフォルトの名無しさん:2008/03/27(木) 22:36:21
(require (lib "ruby.ss" "matzlib"))
727デフォルトの名無しさん:2008/03/27(木) 22:46:16
寒ブルブル
728デフォルトの名無しさん:2008/03/28(金) 01:29:12
>>723
どうもありがとうございます。
729デフォルトの名無しさん:2008/03/28(金) 01:59:34
>>725
ありがとうございます。
730デフォルトの名無しさん:2008/03/28(金) 21:37:58
Seasoned Schemerで
(define counter)
という式が出てくるのですが、これ文法違反ではないんですか?
Dr Schemeで試すとエラーになります。
731デフォルトの名無しさん:2008/03/28(金) 22:30:06
>>720
>>724
d。でもまだ動かない orz
732デフォルトの名無しさん:2008/03/29(土) 01:44:27
texmacsってshcemeで動くemacsなのかな
733デフォルトの名無しさん:2008/03/29(土) 02:09:51
違います
734デフォルトの名無しさん:2008/03/29(土) 09:19:57
TeXで動くemacsだよ
735デフォルトの名無しさん:2008/03/29(土) 09:43:34
そりゃすげー!

マクロ書きたくねー ('A`)
736デフォルトの名無しさん:2008/03/29(土) 11:40:56
seasoned schemer 18章 読んだ人いる?
何を説明したいのかよくわからないんだけど、kons、kdr、kar
っていうcons、cdr、karもどきは何を言いたいの?
737デフォルトの名無しさん:2008/03/29(土) 12:13:11
closures as objects that act like cons cells
738デフォルトの名無しさん:2008/03/29(土) 13:23:08
コンスセルのように動作するオブジェクトとしてのクロージャねえ
ようわからん。おれにはまだ早いな。
6章のShadowとかいうやつからの続きみたいだけど、文法の説明も少ないし
別の本で勉強してから読み直すわ。17章までは良かったのにな。
739デフォルトの名無しさん:2008/03/29(土) 13:29:31
Kent Dybvigの"The Scheme Programming Language"にそっくりの話がある。
この本もお勧めだけど、Schemer×3, SICPでお腹一杯かな?
あとSRFI-9のサンプルコード。SRFI-9の実装によってはまんま。
740デフォルトの名無しさん:2008/03/29(土) 13:46:07
>>739

>あとSRFI-9のサンプルコード。SRFI-9の実装によってはまんま。

18章はよく使われる重要なテクニックなの?
単なる頭の体操用かと思ってた。
だったら、もう少し頑張って読まなきゃなあ。
この本途中でやめると、下手するとLittle Schemerを再読する必要があるから
面倒なんだよな。
741デフォルトの名無しさん:2008/03/29(土) 14:23:49
ってか良書なら一回読んで終わりになることはない
742デフォルトの名無しさん:2008/03/29(土) 16:10:30
texmacsはguileが動く懼?�エディター懼?�って意味ではemacsかもしれないけど
mewやgdb-modeなどの便利アプリはない
743デフォルトの名無しさん:2008/03/29(土) 16:15:39
懼・ってなんだ?
744デフォルトの名無しさん:2008/03/29(土) 16:18:25
texmexみたいな
745デフォルトの名無しさん:2008/03/29(土) 22:49:58
宮..腰,佳奈死.ねよ.ロバ.面し,やがっ.てwww.
宮..腰,佳奈死.ねよ.ロバ.面し,やがっ.てwww.
宮..腰,佳奈死.ねよ.ロバ.面し,やがっ.てwww.
宮..腰,佳奈死.ねよ.ロバ.面し,やがっ.てwww.
宮..腰,佳奈死.ねよ.ロバ.面し,やがっ.てwww.
746デフォルトの名無しさん:2008/03/30(日) 12:09:20
18章、オブジェクト指向やクロージャが出て来て面白いね。難しいけど。
SICPでも出て来る普通の話題だから理解した方がいいね。
Reasoned Schemerの伏線にもなってるし。
747デフォルトの名無しさん:2008/03/30(日) 12:40:18
>>740
前スレだったかにも書いたが、
Schemerシリーズに単なる頭の体操はない。
この道の碩学らしく重要なテクニックを激しく単純化して書いてる。
単純化しすぎて初学者にはなにがなんだか分からないくらいに。
その辺の塩梅が素晴らしいから長く読まれている。
Littleなんて第四版だし。ドリル形式の本が第四版w
748デフォルトの名無しさん:2008/03/30(日) 12:49:43
>>746
18章の発展的話題がMOPになるね。
749デフォルトの名無しさん:2008/03/30(日) 15:35:31
>>746

"Doing encapsulation right is a commitment not just to abstraction of state,

but to eliminate state oriented metaphors from programming."

Alan Kay, "Early History of Smalltall"
750デフォルトの名無しさん:2008/03/30(日) 15:37:31
>>749
× "Early History of Smalltall"
○ "Early History of Smalltalk"
751デフォルトの名無しさん:2008/03/30(日) 15:49:56
でも18章のプログラム(lotsとかlenkth)って動かして試せないよね。
752デフォルトの名無しさん:2008/03/30(日) 16:29:07
サンクでググって動く例を探せYO!
753デフォルトの名無しさん:2008/03/30(日) 16:39:12
754デフォルトの名無しさん:2008/03/30(日) 16:51:12
19章のヒント

ttp://codepad.org/v4fo6RPn
755デフォルトの名無しさん:2008/03/30(日) 16:58:04
Mac上のGaucheでSchemeの練習を始めました
行コメントの ; を使うとエラーするので悩んだのですが
改行コードに CR を使うとだめなようです
Schemeの改行コードは LF がないといけないんでしょうか

756デフォルトの名無しさん:2008/03/30(日) 17:12:50
>>747
初学者用の本じゃないってことだな。
757デフォルトの名無しさん:2008/03/30(日) 17:16:56
>>754
18章のヒントもください
758デフォルトの名無しさん:2008/03/30(日) 17:18:50
手取り足取り教えて欲しい人向けではない。
かなりスパルタ。本が人を選ぶ。
759デフォルトの名無しさん:2008/03/30(日) 17:24:25
>>751
ホレ!動かして理解しろYO!
http://codepad.org/z5fBZv58
18章のヒント
760デフォルトの名無しさん:2008/03/30(日) 17:33:29
>>758
おまえら頭いいな

>>759
thx

クロージャ自体の概念は理解してるんだが。何を言いたいのかが
読み取れないのは俺の感性が鈍いんだろうか。
761デフォルトの名無しさん:2008/03/30(日) 17:41:58
>>760
ココは章全体を見て物を考えるようになっている。前にもそういう章はあった。
鈍いんじゃなくて、ちょっと近視眼的。ストーリーがある文章は通して読まないと意味が取れない。
762デフォルトの名無しさん:2008/03/30(日) 18:04:39
18章のヒント
http://codepad.org/StzeQu0l
ちょっと増やしてみた。
763デフォルトの名無しさん:2008/03/30(日) 18:11:26
>>755
つか、Mac OS Xというか*NIX系で一般的なのはLFな訳で、
せめてCRLFを使えという話。
764デフォルトの名無しさん:2008/03/30(日) 18:12:58
>>760
頭の訓練だから耐えろ
耐えれば出来るようになる
765デフォルトの名無しさん:2008/03/30(日) 18:34:43
16〜18章は続いてる話だね。
766デフォルトの名無しさん:2008/03/30(日) 18:59:51
18章のヒント
http://codepad.org/u6PYnaxS
konsCとsame?を追加した。
767デフォルトの名無しさん:2008/03/30(日) 19:07:44
18章って「17章のconsC」をkonsCにしてるけど、単純にc⇒kという翻訳をテーマにしてるんじゃなくて
shadowsのクロージャについてどうなってるか良く考えないと危ないよってことか。遷移状態って説明のページがあるみたいだ。
768デフォルトの名無しさん:2008/03/30(日) 19:26:14
18章のヒント
http://codepad.org/WoOMFp2X
>>766のkar, kdr, konsとの比較対照用
769デフォルトの名無しさん:2008/03/30(日) 19:28:37
Childhood's End
by Arthur C. Clarke
(1953)
770デフォルトの名無しさん:2008/03/30(日) 19:43:31
>>761
とりあえず進めということか。

>>768
参考にさせてもらいます。

>>764
せっかく17章までは理解できるんだが


それともプログラミングGaucheを先にやったほうが良いかな?
771デフォルトの名無しさん:2008/03/30(日) 21:09:55
>>770
17章は良くわかっていないんじゃないか?どこでset!を使うかという話がメイン。

・counter (p.133-136)⇒kounter(p.145-149)の対応は説明できる?
・18章の各kons(p.146とp.147)とで何が違う?
・add-at-end(p.144)とadd-at-end-too(p.145)とで何が違う?
 特にadd-at-end-too(p.145)の中のkonsを各kons(p.146とp.147)にしたらどう変わるか?

2つの章の対応関係が理解できれば18章は理解できるはず。
772デフォルトの名無しさん:2008/03/30(日) 21:49:46
>>771
17章に疑問はない。
18章の最初に出てくるkons kar kdrが唐突でよくわからん。

773デフォルトの名無しさん:2008/03/30(日) 21:52:27
>>772
おまえムリなんじゃねw
774デフォルトの名無しさん:2008/03/30(日) 21:54:38
>>772
>>771が書いてくれてるp.146とp.147に書いてあるよ。
775デフォルトの名無しさん:2008/03/30(日) 21:56:09
>>773
ちょっとだけそう思い始めてるw
776デフォルトの名無しさん:2008/03/30(日) 21:59:53
>>772

>>768のから見て行くと理解しやすいのでは?
konsで何を返してkarで何を引数にしているか考えると良いかも。

Do you know about lambda the ultimate?
777デフォルトの名無しさん:2008/03/30(日) 22:07:59
必要になれば自力で再発明できる

要領よくカンニングするのが得意な人は本を読めばいいけど、このスレにはいないと思う
778デフォルトの名無しさん:2008/03/30(日) 22:17:04
>>777
なに、この挑戦的な態度w
779デフォルトの名無しさん:2008/03/30(日) 22:37:49
ちょっと真剣に読んでみるわ。
780デフォルトの名無しさん:2008/03/30(日) 22:40:11
>>773
SchemerシリーズでScheme始めたばかりだからなあ。
まだまだだわ。
781デフォルトの名無しさん:2008/03/30(日) 22:42:59
>>776
konsがクロージャ返してるのはわかるけど、
konsを参考にkarとkdrを書けと言われてもわからなかった。
ヒントみながら考えることにする。
782デフォルトの名無しさん:2008/03/30(日) 23:02:14
>>780
SchemerシリーズはScheme始めるのには向かない
783デフォルトの名無しさん:2008/03/30(日) 23:27:27
メソッドがひとつしかないクラスを考えて、それをクロージャに翻訳する

はいはい邪道邪道('A`)
784デフォルトの名無しさん:2008/03/31(月) 00:31:04
>>781
>konsを参考にkarとkdrを書けと言われてもわからなかった。

じゃ、Little Schemerのところの理解不足が原因じゃん。
785デフォルトの名無しさん:2008/03/31(月) 01:00:52
>>784
それは全然違う。
786デフォルトの名無しさん:2008/03/31(月) 01:11:01
>782
そうだよな。Scheme(あるいはLisp)で何かプログラムを書けるように
なりたいと思った時にまずSICP及びSchemerシリーズやTo Mock a
Mockingbirdを一通り読めと言われたらそれは何か違うんじゃ無いかと思う。

いったんLispなりSchemeなりでそこそこ何か書けるようになってから
もう一度、理解を深めるのに読むのが正しい読み方なんじゃないかと。
787デフォルトの名無しさん:2008/03/31(月) 02:24:57
おいらはSchemeで簡単なネットワーク通信でも出来たら
俄然やる気が出てくると思う。実用的な何かが作りたい。
深遠な部分はそれからやりたい。
788デフォルトの名無しさん:2008/03/31(月) 03:14:33
SICPとTo Mock a Mockingbirdは違うと思うが、
Little Schemerはやるべき。
789デフォルトの名無しさん:2008/03/31(月) 05:01:26
>>787
フムフム本をおすすめします
790デフォルトの名無しさん:2008/03/31(月) 05:17:50
脱落者が居ると俄然やる気でるw
791デフォルトの名無しさん:2008/03/31(月) 08:11:18
なんて競争社会
792デフォルトの名無しさん:2008/03/31(月) 08:28:30
本なんか読むより処理系のソース読んだほうがいい
動作原理→概念
793デフォルトの名無しさん:2008/03/31(月) 11:43:08
本でも最後のほうで小さなインタプリタを作るんだけど、
ソースを読んで理解するというより、ある時ふと「こうすれば作れるんじゃね?」
と思いついて、あらためて本を読んでみるとその通りのことが書かれている感じ

『なんでも継続』にも、継続渡し形式をそれと知らずに使った経験があるはずだ
というくだりがある

その経験がないなら、いったん脱落して他のことをやるほうが近道かもしれない
794デフォルトの名無しさん:2008/03/31(月) 11:53:14
>>792
それはない。
機構を理解しても、フレームワークは推測できない。
795デフォルトの名無しさん:2008/03/31(月) 11:55:00
>>737
「closures as objects」はSchemeの元々の目的だね。
Actor理論研究のための処理系だったから。
796デフォルトの名無しさん:2008/03/31(月) 17:06:23
ガイ・スチールのプレゼンに出てきた話?よくわからなかったのですが。
簡単に言うとActor理論とはなんですか。
797デフォルトの名無しさん:2008/03/31(月) 17:17:56
>>796
Actor Induction and Meta-evaluation (1973) カール・ヒューイット
http://www.cypherpunks.to/erights/history/actors/actor-induction.pdf

アラン・ケイの(メッセージングによる)オブジェクト指向から派生した概念。
だと思う。
798デフォルトの名無しさん:2008/03/31(月) 19:37:42
どうも、プレゼンにヒューイットさんの名前も出てました。
今携帯なんでアドレス出ませんが。
799デフォルトの名無しさん:2008/04/01(火) 01:10:08
>>797
米澤明憲
Specifying Software Systems with High Internal Concurrency Based on Actor Formalism
情報処理学会 昭和55年度論文賞 英文論文誌 vol. 2 no. 4 pp. 208-218.

ってのがありますが。
 米澤先生ってMIT から78年頃戻られているので、
 その直後のPaperじゃないかな。
800798:2008/04/01(火) 01:15:37
798のアドレスは>>65でした
801デフォルトの名無しさん:2008/04/01(火) 03:03:45
ACL入れてみた。なんかすげーなこれw
厨房の俺にはちっともわからんw
802デフォルトの名無しさん:2008/04/01(火) 03:44:30
>>799
その後にABCLって言語をやってます。
"An object-Based Conccurent Language"の略になっていますが、
元々は"Actor Based Conccurent Language"を考えて、
そこから生まれていると思います。
Actorとは別の計算モデルとして発展させたので、
"An object-Based"としたのでしょう。
その辺の経緯は日本ソフトウェア科学会の受賞記事にくわしいです。
(どこかにPDFがあったはず) アメリカではABCL/1のことを
"Actor Based Conccurent Language"と呼んでいたりします。
803デフォルトの名無しさん:2008/04/01(火) 03:51:30
804デフォルトの名無しさん:2008/04/01(火) 04:06:25
どなたかお教えいただけないでしょうか?
http://d.hatena.ne.jp/niitsuma/20080331/1206990062
pymacsを使えばdefmacroがpythonで使えるんじゃないかと思ったのですが,やっぱり難しい気もします.何か方法はあるのでしょうか?
805デフォルトの名無しさん:2008/04/01(火) 06:54:12
>>801
つxyzzy
806デフォルトの名無しさん:2008/04/01(火) 07:15:31
> アクターモデル
wikipediaに結構くわしく書いてあった。
807デフォルトの名無しさん:2008/04/01(火) 12:39:56
アクターモデルとその周辺。

http://www.wizforest.com/OldGood/flex/#simula
808デフォルトの名無しさん:2008/04/01(火) 15:36:49
黒板とかラテン語とか言うけどさ

論文のネタならHaskellのほうがいいんじゃないか
809デフォルトの名無しさん:2008/04/01(火) 18:02:02
Windows用インストーラ作りますた。

karetta.jp/images/3/Gauche-win32-0.8.13.exe

置き場所が決まったら消すかも。
810デフォルトの名無しさん:2008/04/01(火) 20:01:30
>>808
それはない
811デフォルトの名無しさん:2008/04/01(火) 22:26:12
ネタは頭の中に転がってるだろ常考
812デフォルトの名無しさん:2008/04/01(火) 22:35:29
頭の中にあるネタを実現するときに適切な処理系が無いときLisp/SchemeでDSLとか実現できるのが便利。
グレアムのArcみたく既存のScheme上にヤドカリ出来る。Seasoned Schemerの20章とかSICPの最後もそういう趣旨だなぁ。
実現したいネタが無い人っているの?「うは、夢が広がりんぐ」ってよく言ってるのもネタだろw
813デフォルトの名無しさん:2008/04/01(火) 22:50:44
>>812
そういう小ネタから論文書けたり実用的なプログラム作れちゃう人もいるんだろな。ええな〜w
814デフォルトの名無しさん:2008/04/01(火) 23:16:26
やっぱ既存の言語で既出のネタを考察するみたいなのが無難?
815デフォルトの名無しさん:2008/04/01(火) 23:58:37
論文なんてどんなネタでも書けるだろ。とりあえず、ここの連中がすぐに思いつくようなことを
書かなければ、それなりに評価されるんじゃねえか?w
816デフォルトの名無しさん:2008/04/02(水) 01:09:15
数値計算のいろんなアルゴリズムを数式処理と絡めて最少の手間で実験したい
817デフォルトの名無しさん:2008/04/02(水) 01:16:13
LuaみたいなのはDSLっていうのかな
Schemeの上に言語を作るのもいいけど
C/C++の上にSchemeを埋め込んで使う話題が増えると嬉しいのだが
818デフォルトの名無しさん:2008/04/02(水) 10:17:50
>>809
おっつー。
819デフォルトの名無しさん:2008/04/02(水) 16:55:28
>>809
パソコン蛾ぶっこ割れた
820デフォルトの名無しさん:2008/04/02(水) 17:39:21
俺のバスコンは物故割れなかったよ?
821デフォルトの名無しさん:2008/04/02(水) 18:09:50
フフフ
俺の居住地域は時差の関係で今日がエイプリルフールなのさ
822デフォルトの名無しさん:2008/04/02(水) 18:14:40
>821
アラスカかハワイにでも住んでるのか?
823デフォルトの名無しさん:2008/04/02(水) 18:28:49
ジェルソミーノ乙
824デフォルトの名無しさん:2008/04/02(水) 20:14:47
825デフォルトの名無しさん:2008/04/02(水) 20:21:49
まだ4月1日、はあるけど
今日が4月1日、はないな
826デフォルトの名無しさん:2008/04/02(水) 21:27:56
ゼオライマーの次元連結システムで
昨日の世界からネットにつないでいる
827デフォルトの名無しさん:2008/04/02(水) 22:41:05
828デフォルトの名無しさん:2008/04/02(水) 23:00:21
829デフォルトの名無しさん:2008/04/02(水) 23:08:50
LLばっかり。
830デフォルトの名無しさん:2008/04/02(水) 23:09:44
lisp in elisp byte-code -- emacs-cl

http://www.lisp.se/emacs-cl/
831デフォルトの名無しさん:2008/04/02(水) 23:18:04
つ pylisp, pyscheme
832デフォルトの名無しさん:2008/04/02(水) 23:23:15
C++にBoost.Schemeとか欲しいな。
833デフォルトの名無しさん:2008/04/02(水) 23:26:33
834デフォルトの名無しさん:2008/04/02(水) 23:46:31
835デフォルトの名無しさん:2008/04/02(水) 23:57:41
836デフォルトの名無しさん:2008/04/03(木) 00:04:56
837デフォルトの名無しさん:2008/04/03(木) 00:11:32
838デフォルトの名無しさん:2008/04/03(木) 00:12:22
もはやCOBOLとかSNOBOLあたりで作らないとネタにならんだろ
839デフォルトの名無しさん:2008/04/03(木) 00:20:22
大半がToyプログラムだしな。本当に使いものになる処理系とは天地ほどの差があるってやつだ。
840デフォルトの名無しさん:2008/04/03(木) 01:29:16
実行速度や組み込み関数といったあたりまではともかく、
ライブラリの充実まで含めて「非toy」であろうとすると、難しいもんなぁ。
841デフォルトの名無しさん:2008/04/03(木) 02:11:07
こういう時の「LISP」って、100%完全にCommonLispじゃねーよな
LISPのwiki書いた奴都合良すぎ
最近のAMDうざみたい
842デフォルトの名無しさん:2008/04/03(木) 02:38:46
Common Lisp in C
http://clisp.cons.org/
843デフォルトの名無しさん:2008/04/03(木) 05:29:38
>>841
そりゃまあ、Common Lisp じゃなくて Lisp だもんなあ。
何に文句言ってるんだ?
844デフォルトの名無しさん:2008/04/03(木) 13:16:59
boost.pythonだけは使い物になる。完全にwrap作業を自動化できる。
他は手作業で生成したファイルをいじらないといけないのばっかり。
boost.clispは非常に欲しい
845デフォルトの名無しさん:2008/04/03(木) 15:20:09
>>830
CLOSないとか使えなさすぎる
846デフォルトの名無しさん:2008/04/03(木) 16:06:43
>>843
Lispという呼び方がCommonLispの略称だと思ってたんじゃない?
847デフォルトの名無しさん:2008/04/03(木) 19:11:22
WikipediaをWikiと略す奴もいるしな
848デフォルトの名無しさん:2008/04/03(木) 19:54:15
>>847
それ、時々抵抗示す人を見るけど、こだわり過ぎるのもどうかと思うし、
長ったらしいフルネームをいちいち書けということなら、日下部陽一的にキモいと思うよ。
パーマネントカールがパーマに、携帯電話が携帯になる世界に生きてるんだから、慣れな。
849デフォルトの名無しさん:2008/04/03(木) 20:03:46
>>848
WikiとWikipediaはユーザ書き換え可能ページ全体と固有名詞の違いがあるんでこだわりと言うよりも分けてくれないと混乱があるからやめてくれの意味がデカイと思う
○○ってWikiにあったと言われるときと○○とWikipediaにあったと書く時の違いがでかいのと一緒
850デフォルトの名無しさん:2008/04/03(木) 20:04:26
大抵文脈で分かるだろ・・・。
851デフォルトの名無しさん:2008/04/03(木) 20:33:26
ニヤニヤ
852デフォルトの名無しさん:2008/04/03(木) 20:36:02
シコシコ
853デフォルトの名無しさん:2008/04/03(木) 20:37:25
アプアア
854デフォルトの名無しさん:2008/04/03(木) 20:52:53
>>848
間違えてる馬鹿はWikipedia以外のWikiを知らないだけだろ。
855デフォルトの名無しさん:2008/04/03(木) 20:54:19
すみませんが質問です。

Gauche などの Scheme処理系で、何かの関数の定義(ソースコード)を表示す
る方法はないでしょうか?
ソースを検索するのではなく、関数名だけから取得する方法があったら便利か
と思うのですが。

ちなみに統計処理用言語 GNU R は、対話コンソールに関数名を入力すると、
その関数定義(そーす)がそのまま表示されます。なかなか便利です。
856デフォルトの名無しさん:2008/04/03(木) 21:05:06
フムフム
857デフォルトの名無しさん:2008/04/03(木) 21:08:19
俺も「wiki」には抵抗あったけど
IPアドレスのことIPって言う人も多いし、もうどうでもよくなってきた
858デフォルトの名無しさん:2008/04/03(木) 21:10:42
携帯電話以外の携帯を知ってるけど
携帯電話は携帯と呼ぶぜ!
859デフォルトの名無しさん:2008/04/03(木) 21:15:59
>>854
まさにそこが携帯のケースとは違うところだな
860デフォルトの名無しさん:2008/04/03(木) 21:31:22
>>855
CommonLispのfunction-lambda-expressionみたいなの?
Gaucheにはないんじゃないかなぁ
disasmの出力のコメント部分を眺めて推測するしかないかも
861デフォルトの名無しさん:2008/04/03(木) 22:00:31
>>855
Lisp/Scheme shellなら出来そうだけど、Gaucheとかでやる意味が訳ワカメ
862デフォルトの名無しさん:2008/04/03(木) 22:02:43
Gaucheはスクリプト言語じゃん。対話するの?
863デフォルトの名無しさん:2008/04/03(木) 22:11:57
します
スクリプト言語はテストが大事ですから
864デフォルトの名無しさん:2008/04/03(木) 22:15:43
Ah! SKI の BASIC で書かれた LISP は本物?
865デフォルトの名無しさん:2008/04/03(木) 22:20:14
すべてのLispは本物のLispですよ
866デフォルトの名無しさん:2008/04/03(木) 22:23:43
>>854
「間違えてる」っていう認識が世間的には既におかしいし、
その「知らないまま使う奴が多い」というのこそ、浸透の証なわけだよ。

最後の最後まで抵抗を示し続けるのもいいけど、あんまり無差別に頑張るなよ。
2chでいちいち「レスって何ですか?」って食ってかかる奴を想像すればいい。
世間的には、「Wikipediaと言え!」も、それと同じ位置にもう来ているから。
867デフォルトの名無しさん:2008/04/03(木) 22:23:49
>>863
テストと関数定義(そーす)がそのまま表示されることにどんな関係を想定してるの?
そこがわからんけど、うまい使い方ならGauche/Kahuaの中の人が考えてくれそう。
868デフォルトの名無しさん:2008/04/03(木) 22:26:10
>>855
Scheme的には仕様外です。
そういうものに依存しないほうがいいのでないという考え。

処理系依存で相当機能を持つものがあるかどうか知りません。
R?RS準拠ではない小さい処理系ならば、
reflection系のものはほぼ必ず持っていますが。
869デフォルトの名無しさん:2008/04/03(木) 22:27:41
>>866
浸透してることと間違えてることと馬鹿であることはすべて独立した概念なので
何も矛盾している点は無い。

そこまで馬鹿を擁護しなきゃいかん理由がさっぱり理解できない。
頑張ってるのは君のほうでは?
870デフォルトの名無しさん:2008/04/03(木) 22:28:49
スレ違いの用語一般論やっている奴はこのスレではお荷物の馬鹿だし、
このスレはこのスレであって世間一般ではないのだから、
世間がどうのこうのというご高説もちゃんちゃらおかしい。
871デフォルトの名無しさん:2008/04/03(木) 22:33:56
プログラミングGaucheのKahuaのインストールで
環境変数が設定できなくて困っています
ホームディレクトリの.profileに

変更前:
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bi
n:$HOME/bin; export PATH

変更後:
PATH=/usr/local/kahua/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/lo
cal/bin:/usr/X11R6/bin:$HOME/bin; export PATH

と追加してみましたが
追加してみたのですが、rehashしてもログインしなおしても認識されません
どこが間違ってるんでしょうか
(スレ違いな気もしますがどこが妥当か分からないorz・・・)
872デフォルトの名無しさん:2008/04/03(木) 23:13:02
>>855
基本的には出来ないと思ったほうがいい。
実行時にはVM用のコードにコンパイル済みだから
ソースの形式で保持してない。
873デフォルトの名無しさん:2008/04/03(木) 23:25:57
>>871
認識されないとは?
環境変数に反映されてないってことですか?
シェルの種類は?
OSは?

>>872
Schemeはdefunじゃなくてdefineだから
シンボルとソースコードの関連付けはできないだろうけど
手続き自体に保持しておくことは可能じゃないですか?
Gaucheのdisasmだってある程度のソースコード情報は出力するし。
874デフォルトの名無しさん:2008/04/03(木) 23:31:38
>>873

すみません。忘れてました。
OSはFreeBSD6.3
シェルはcsh

です
875デフォルトの名無しさん:2008/04/03(木) 23:36:16
cshはあんまり使ったことないけど
exportじゃなくてsetenvじゃなかったっけ?
876デフォルトの名無しさん:2008/04/03(木) 23:40:34
csh
× .profile
○ .login
ただし,ログインシェルのみ
877デフォルトの名無しさん:2008/04/03(木) 23:42:30
>>871
UNIX板のくだ質スレ推奨
お題は「PATH環境変数の設定方法」
878デフォルトの名無しさん:2008/04/03(木) 23:43:34
>>869
> 浸透してることと間違えてることと馬鹿であることはすべて独立した概念なので
> 何も矛盾している点は無い。
そう、そこなんだよね。
なのに>>854は「間違えてることと馬鹿であること」を強調してるけど、意味が無い。

> そこまで馬鹿を擁護しなきゃいかん理由がさっぱり理解できない。
なんでこれが擁護になるのかがさっぱり理解できない。
「いちいちwikiという言い方に突っ込んだりするのは、今やもう痛いよね」というのが擁護? 意味不明。
879デフォルトの名無しさん:2008/04/03(木) 23:45:19
>>870
だったらスルーしないとね。
ネチっこい嫌味を書き込んで、わざわざ同じ穴の狢に成り下がって何がしたいんだか。
自爆が趣味なの?
880デフォルトの名無しさん:2008/04/03(木) 23:48:25
根本原因はWikipediaがWikipediaという名前であることにあると思う。
単に略してWikiと言っているつもりなのかWikiというシステムと混同しているのかで意味が違ってくる。
881デフォルトの名無しさん:2008/04/03(木) 23:55:23
まぁ、どっちのことを言ってるのかわからん文脈では、もうWikiとは書けないね。
たとえ自分は正解を知っていても、知らない人間が増えることで、その影響を受けざるを得ないこともある。
882デフォルトの名無しさん:2008/04/03(木) 23:55:25
Wiki=Wikipediaの意味で使うのは単に気色悪いだけだけど
このスレでLisp=Common Lispと言い張るのは違うと思うよ。
883デフォルトの名無しさん:2008/04/03(木) 23:58:15
気にするやつはSchemer。名前が衝突しないようにwikとか妙な略をつくるんだ。
気にしないやつはCLer。たまにfuncallが必要になるんだ。
884デフォルトの名無しさん:2008/04/04(金) 00:05:58
>>883
> 気にしないやつはCLer。たまにfuncallが必要になるんだ。
そこがまたかわいい所なんだぜ
885デフォルトの名無しさん:2008/04/04(金) 00:12:58
>>882
そうだ、その話だったんだ、もう忘れてたよ。w
>>883
CLerだがちゃんと区別して使ってるよ。
886デフォルトの名無しさん:2008/04/04(金) 00:33:31
名前を考えたくないとき

無名関数
アナフォリックマクロ
ポイントフリースタイル
887デフォルトの名無しさん:2008/04/04(金) 01:05:36
>>871

良く分かんないんだけど、

gosh>(add-load-path "~/")

じゃダメなのかしら?

888デフォルトの名無しさん:2008/04/04(金) 05:03:41
http://ja.wikipedia.org/wiki/LISP
>なにも付けずに「Lisp」というときは一般的にCommon Lispのことを指し示している場合が多い。
これか。
そういや一時期のCommonLisperは非常にうざかったな。
どうせ過疎るのにスレを乱立させるわ、
ここのスレタイも勝手にC(略)Lisp Schemeに変えるわ。
CommonLisp以外のLispを排除しようと必死だった。
889デフォルトの名無しさん:2008/04/04(金) 09:56:07
もうスレタイはLispだけでいいよ。
Common-LispもSchemもLispの仲間なんだし。
890デフォルトの名無しさん:2008/04/04(金) 10:01:38
CLerがCLにこだわるのはなんでだろうね。ANSIだからかね。
過去のCLの併合アプローチは失敗だったから、
もしかするとモデルとしてのschemeの存在がなかったら、
Lisp自体が消えてたかもしれない。(少なくとも日本では)
CLで盛り上がってますよ的な話は聞いた事ないしね。
2chのム板でそれなりに認知されて、1スレを1ヶ月で使い切る
ようなペースになったのも、やはりschemeの方の功績みたいだし。
ただSchemerにとっても、CLの後ろ盾があるから安心して
使えるみたいな心理はあると思う。
SBCLのWindows版がようやくまともに動くようになったっぽいから、
これからWin使いのLISPユーザーが増えてくれるとありがたいね。
891デフォルトの名無しさん:2008/04/04(金) 10:05:08
>>890はこのスレを荒らしたいらしい
892デフォルトの名無しさん:2008/04/04(金) 10:28:39
>>891
もしかして脅しですか?
CLerは怖いなあ。
↓本職の893さん、どうぞ
893デフォルトの名無しさん:2008/04/04(金) 10:42:22
>>892
いてまうぞこら。

俺はSchemeからLispの世界に入ってCLに移行した少数派。
894デフォルトの名無しさん:2008/04/04(金) 10:44:51
>>892
どうしても荒らしたいんだなw
895デフォルトの名無しさん:2008/04/04(金) 10:46:57
>>888>>890みたいな荒しは放置した方がいいよ。
どっちも好きな俺からすれば、迷惑な話。
896デフォルトの名無しさん:2008/04/04(金) 10:53:54
合いの手返すようなのが一番荒れる原因を作ってるような…。
CLの話題になると荒れる、みたいな流れを作りたいのかな?
897デフォルトの名無しさん:2008/04/04(金) 10:55:01
実際荒れてる
898デフォルトの名無しさん:2008/04/04(金) 10:57:09
所詮休戦協定は破られるためにあるのさ
899デフォルトの名無しさん:2008/04/04(金) 10:57:35
次スレのテンプレに追加するものあったら今のうちに上げといてくれ。
リンク切れとか。
900デフォルトの名無しさん:2008/04/04(金) 11:00:10
荒らし扱いされるんじゃ逆にCL排除でもいいよ。
隔離スレもあるんだし。
と極右になってみるテスト。
つーか実質そうなってるからね。別にここで話すこともないし。
901デフォルトの名無しさん:2008/04/04(金) 11:04:48
>>896
お前がそうしたいと思ってるから、そういう風に見えるんだろ
902デフォルトの名無しさん:2008/04/04(金) 11:34:27
Common LispとSchemeどっちが好きですか?
903デフォルトの名無しさん:2008/04/04(金) 11:41:53
つーかなんでその2つを比べたがるん?
904デフォルトの名無しさん:2008/04/04(金) 11:46:56
姉に勝る妹などいない
905デフォルトの名無しさん:2008/04/04(金) 11:47:32
攻略対象を一人に絞らないとバッドエンドですね、わかります
906デフォルトの名無しさん:2008/04/04(金) 12:05:31
美人姉妹の家にご厄介になってますが
907デフォルトの名無しさん:2008/04/04(金) 13:23:34
>>890
おれは親切だから教えてやるが、おまえの頭、狂ってるよ
908デフォルトの名無しさん:2008/04/04(金) 13:24:47
だからスレ分けようよ。
Schemeを隔離するのが良いと思うけど、Common Lisp専用スレ立てるんでもいいよ。
909デフォルトの名無しさん:2008/04/04(金) 13:37:41
入門用だけど、CL専用スレたってるよ。
入門スレなのに変に難しい話題になることがあるが…。
910デフォルトの名無しさん:2008/04/04(金) 13:46:09
姉とキャッキャウフフしていると、それはANSI標準の範囲外だと言って妹が牽制してきます
911デフォルトの名無しさん:2008/04/04(金) 13:46:47
Schemerを攻撃するCLer、CLerを攻撃するSchemerってのは、ほとんどは反対側を
知らない無知な人間のように見えるけどな。
そういう人間が多いなら分離がいいんじゃね?
912デフォルトの名無しさん:2008/04/04(金) 13:55:11
荒しは放置
分離の必要ない
荒しが調子に乗るだけ
R6RSは分離、CLOSは分離、きりがない
913デフォルトの名無しさん:2008/04/04(金) 13:58:32
せめてスレタイをなんとかしろ
914デフォルトの名無しさん:2008/04/04(金) 14:03:01
最近ようやく読みこなせたんだけど、↓のコード面白いな。

Portable syntax-case
http://www.cs.indiana.edu/chezscheme/syntax-case/
915デフォルトの名無しさん:2008/04/04(金) 15:12:34
Lisp (CL Scheme ...) 21
みたいな
916デフォルトの名無しさん:2008/04/04(金) 15:15:17
このスレタイで何の問題もないです。
917デフォルトの名無しさん:2008/04/04(金) 15:27:42
というかここCLとSchemeのスレだったのか
Lisp方言のSchemeのスレという意味でスレタイがLisp Schemeになってるのかと思ってた
918デフォルトの名無しさん:2008/04/04(金) 15:35:10
俺も最初そう思って辿り着いたから、分けなくてもいいからちゃんと明記してほしいかな
別にこのままでもいいけど
919デフォルトの名無しさん:2008/04/04(金) 15:36:51
今のテンプレでも分かりにくいようなら、
LispとSchemeのスレです。と>>1に書いとけ。
920デフォルトの名無しさん:2008/04/04(金) 15:49:48
>>919
まるでSchemeがLispじゃないみたいな言い方だなw
921デフォルトの名無しさん:2008/04/04(金) 15:52:26
Lispという集合の定義なんて個人的にはどうでもいいけどさ、
SchemeがLispならば>>915みたいなスレタイが良い
SchemeがLispでないならば、スレは分けたほうが良い
んじゃないか?
922デフォルトの名無しさん:2008/04/04(金) 16:00:46
どうでもいい語用論でスレタイをいじるのはよせ
923デフォルトの名無しさん:2008/04/04(金) 16:04:09
どうしても「Scheme」と「Lisp」が対等じゃなきゃ厭なの?
明らかに変なスレタイだから、直しましょうって話をしてるんだけど。
924デフォルトの名無しさん:2008/04/04(金) 16:09:59
長らく続いたスレタイを変更するような違和感はないなあ
925デフォルトの名無しさん:2008/04/04(金) 16:32:38
(Part (or '|Common Lisp| 'Scheme)) -> 21

Common LispはLispだが
SchemeはLispじゃないという黒い人もいるんだから
Lisp Scheme PartXXでいいと思う。
926デフォルトの名無しさん:2008/04/04(金) 16:43:21
「長らく続いた」伝統文化なのか。w
じゃ、しょうがないな。勝手にしろ。
927デフォルトの名無しさん:2008/04/04(金) 17:05:45
SchemeはLispなんだけど
名前にLispが入っていないから
タイトルに明示的にSchemeを入れている
という解釈でいいと思う
そしたら分離も改名もしなくていい
928デフォルトの名無しさん:2008/04/04(金) 17:12:39
ここまで読み飛ばした。
で、一つわかったことがある。

おまえら暇なんだな。
929デフォルトの名無しさん:2008/04/04(金) 17:22:31
RubyはLispなんだけど
名前にLispが入っていないから
タイトルに明示的にRubyを入れている
ついでにスレを隔離しているという解釈でいいと思う
930デフォルトの名無しさん:2008/04/04(金) 17:24:26
>>928
ワシも暇じゃが
おまいもひまじゃのぉ

931デフォルトの名無しさん:2008/04/04(金) 17:33:21
>>917
最初は本当にScheme使いしかいなかった。
SchemeはLisp族だから、ついでに頭にLispを付けた。
当時、Lispスレはマ板の方にあったし、
スレタイをム板の素人にも判るように配慮しただけ。
今みたいに上だ下だの議論も無かったからね。
スレタイのLispがCommonLisp限定だ、なんて意図も全く無い。
932デフォルトの名無しさん:2008/04/04(金) 17:34:44
Common Scheme ってのを作ればいんじゃね!?
933デフォルトの名無しさん:2008/04/04(金) 17:38:05
じゃあGaucheスレ立てる
934デフォルトの名無しさん:2008/04/04(金) 17:40:32
よろしく
935デフォルトの名無しさん:2008/04/04(金) 17:55:47
Arcはタイトルに入れた方がいいかも
936デフォルトの名無しさん:2008/04/04(金) 17:57:52
arcは別にスレあるよ
937デフォルトの名無しさん:2008/04/04(金) 17:58:42
「CommonLisp総合 Part n」
みたいなのが別にあれば解決するでしょ。
【入門】とか半端なのしかないから居心地悪くなって
ここにたむろうわけだし。
おまえら全くセンスねーですな。
938デフォルトの名無しさん:2008/04/04(金) 18:02:28
arcスレ195で止まってるぞ。
はいぱー何とかのネタ振った奴責任重大だぞ
流れを本流へ戻せw
939デフォルトの名無しさん:2008/04/04(金) 18:02:31
>>936
それは知ってますけど
Lisp族総合スレみたいなものでしょ、ここ
940デフォルトの名無しさん:2008/04/04(金) 18:10:14
schemeはasdlやcffiありますか?
closっぽいことできますか?
私はmaximaのためにclisp使ってます
941デフォルトの名無しさん:2008/04/04(金) 18:12:56
>>937
ここで喧々囂々やってるよりはいいんじゃねーの。
CommonLispに限らず、維持するつもりがあるなら立てればいいよ。
933みたいな処理系のスレでも。
942デフォルトの名無しさん:2008/04/04(金) 18:19:31
pythonやC#にもlambdaがあるそうだけど、Schemeのlambdaと考え方
は同じなの?
943デフォルトの名無しさん:2008/04/04(金) 18:26:52
>>931
それなら、初心に返ってここはScheme限定(限定というのが悪ければ、Schemeの話題を優先)。
Common Lispはそれなりに需要があるのだからスレを立てる、でも良いかもね。
というわけで、今まで出た意見の中では>>937に賛成かな。
944デフォルトの名無しさん:2008/04/04(金) 18:27:42
>>942
まあ同じ。
違うといえば違うんだが、それを言ったらCLのlambdaとSchemeのlambdaも違う。
945デフォルトの名無しさん:2008/04/04(金) 18:29:15
簡単だけど次スレ立てておいた。
テンプレ追加あったらよろしく。

次スレ

Lisp Scheme Part21
http://pc11.2ch.net/test/read.cgi/tech/1207300697/
946デフォルトの名無しさん:2008/04/04(金) 18:35:28
>>945
実力行使乙w
947デフォルトの名無しさん:2008/04/04(金) 18:36:52
話し合いの最中に押し切るなんて流石ですね
いや別にいいんだけど、結局総合スレって位置づけでいいの?
そこだけでも決めてたらテンプレもすっきりしたかもしれないのに
948デフォルトの名無しさん:2008/04/04(金) 18:38:38
実にくだらない議論だし、付き合ってられん。
949デフォルトの名無しさん:2008/04/04(金) 18:44:45
おまえらがコードを書く時の柔軟な思考回路を
ここの話し合いにも使ってくれ。
みんな頭固すぎだよ。
950デフォルトの名無しさん:2008/04/04(金) 18:49:24
オラの元気をみんなに少し、、、あれ?
951デフォルトの名無しさん:2008/04/04(金) 19:02:20
ゴクウもうろくしちゃって・゜・(ノД` )・゜・。
952デフォルトの名無しさん:2008/04/04(金) 19:23:27
R6RSが荒れた理由がこのスレ読んで分かった。
Lisper同士どんだけ仲悪いのか、と。
953デフォルトの名無しさん:2008/04/04(金) 19:33:22
>>948
激同
954デフォルトの名無しさん:2008/04/04(金) 20:03:41
>>944
ちょっとpythonかじってみる
955デフォルトの名無しさん:2008/04/04(金) 20:06:15
>>952
近親憎悪みたいなもんなだけに門外漢が見るとばかばかしいし、専門で取り組んでる奴はむかっ腹たてるんだよな〜
956デフォルトの名無しさん:2008/04/04(金) 20:06:39
>>952
スレの分割や統廃合が円満に行われてるところなんて、
これまで見たことがない。この程度ならぬるい方。

不満があるからこういう話になるんだし、不満があれば揉めもするだろ。
957デフォルトの名無しさん:2008/04/04(金) 20:11:36
>>952
いや別に仲悪い訳じゃないんじゃない?
煽られてる人が騒いでるだけよw

そもそも両方使う人は多いしね。
958デフォルトの名無しさん:2008/04/04(金) 20:19:42
>>944
pythonのlambdaは式は書けるけど文は書けない
959デフォルトの名無しさん:2008/04/04(金) 20:23:16
>>940
schemeはasdlやcffiありますか?
asdf
→ありません。(処理系依存でモジュール等あり)
cffi
→あります。(処理系依存)
closっぽいことできますか?
→できます。(処理系依存)
「プログラミングGauche」に色々詳しく書いてますので、おすすめです。

ちなみにmaximaのためにclisp使うんだったら知る必要はないでしょうが、
CLでも、cffi、asdfは、オプションであり標準のものではありません。
960デフォルトの名無しさん:2008/04/04(金) 20:48:26
レベルが下がると賑わうなw
まぁ当たり前なんだが、その「当たり前」が順当に形になっててちょっと吹いた。
961デフォルトの名無しさん:2008/04/04(金) 21:09:45
>>960
勉強中には静かにROMってるんだから精神的に成熟してる住人が多数派なのは確かだ。
しかもたまに鋭い指摘があって勉強になる。最近、若干スレの流れが速くて困るけど。
962デフォルトの名無しさん:2008/04/04(金) 21:38:58
>>959
> cffi
> →あります。(処理系依存)
ffi が処理系依存で、cffiはそれのラッパじゃねーの?
963デフォルトの名無しさん:2008/04/04(金) 22:14:34
>>940
そのとおりです…、としか言えないw
964デフォルトの名無しさん:2008/04/04(金) 22:15:40
まちがった、962へのレスだった
965デフォルトの名無しさん:2008/04/04(金) 22:30:19
とにかくSeasoned Schemer読了したのでご報告。スレの諸兄に深謝します。
Seasoned Schemerの18章の謎(というかテーマ)は内部表現の「記述量」ってことか。
ようやく腑に落ちた。つまり「この問題を解決するにはどうすればいい?」ということを考えさせてる訳だったのか。
答えはGCなんだろうけど。でもGCまで踏み込んでないのは教育的配慮?
19章はコルーチン。20章はインタープリターの作成。Littleの10章でも似たことをやったけど今度は継続とかも実装した。
読んでよかったYO!
966デフォルトの名無しさん:2008/04/04(金) 23:01:32
気になるな
訳本がないと立ち読みもできん
967デフォルトの名無しさん:2008/04/05(土) 00:02:53
968デフォルトの名無しさん:2008/04/05(土) 00:52:32
>>967
thx

継続を実装ってそういうことか
素のcall/ccを使わないとしたらどれくらい短く書けるのかな
969デフォルトの名無しさん:2008/04/05(土) 01:18:54
Lispは内部表現が大きいからGCが重要だって、入門レベルで書いてる本少ないよな。
てか、Littleの8章のYコンビネータとSeasonedの18章の記述量問題を入門者が一読して理解できたならこの本の狙いは成功だろ常考。
Scheme入門だけじゃなくてCS入門の本だから永い間読み継がれているんだろな。
970デフォルトの名無しさん:2008/04/05(土) 01:52:26
リトル読み終わってない俺、涙目
971デフォルトの名無しさん:2008/04/05(土) 01:57:45
Yコンビナートの前の章(colが出てくる章)が理解できたところで
自分的にかなりおなかいっぱいに…
この先苦痛になるのでは、と考えると怖くて
972デフォルトの名無しさん:2008/04/05(土) 10:36:35
17章でひとまずお休みした俺。もう少し慣れてから再読する。
973デフォルトの名無しさん:2008/04/05(土) 12:44:18
2冊読んで難しかった部分。それぞれ関係があった。
8章(Yコンビネータ)→16章(Y!コンビネータ)
18章(bons)→20章(set)
974デフォルトの名無しさん:2008/04/05(土) 12:51:48
The Reasoned Schemer with Oz
ttp://lambda-the-ultimate.org/node/1393

The Reasoned Schemer
ttp://lambda-the-ultimate.org/node/1104
975デフォルトの名無しさん:2008/04/05(土) 13:04:23
>>965
>Seasoned Schemerの18章の謎(というかテーマ)は内部表現の「記述量」ってことか。
>ようやく腑に落ちた。つまり「この問題を解決するにはどうすればいい?」ということを考えさせてる訳だったのか。
>答えはGCなんだろうけど。でもGCまで踏み込んでないのは教育的配慮?
>19章はコルーチン。20章はインタープリターの作成。Littleの10章でも似たことをやったけど今度は継続とかも実装した。

ソレ系の本格的な教科書がある。言語はStandard MLだけどね。

Andrew W. Appel "Compiling With Continuations"
ttp://www.amazon.co.jp/exec/obidos/ASIN/052103311X/
976デフォルトの名無しさん:2008/04/05(土) 13:05:04
Y! ってどっかのケータイみたいだなw
977デフォルトの名無しさん:2008/04/05(土) 13:43:29
>>959
maximaからでもcffiやasdfは使えます
使えるようにconfigureしてからmakeするだけです
逆にclispで
(in-pckage maxima)
でmaximaのコマンド使えないかなあ


schemeとcommon lispのインターフェイスあればschemeからmaxima使えていいんだけどなあ
978デフォルトの名無しさん:2008/04/05(土) 13:44:25
slimeとilislのどっちがお勧めですか?
979デフォルトの名無しさん:2008/04/05(土) 14:26:47
Seasoned Schemer の20章「インタープリターの作成」を他の言語と比較すると理解を助けてくれるかもしれない。
>>824-842
Lisp in Perl ttp://wolf-dieter-busch.de/makelisp.htm
Scheme in JavaScript ttp://codezine.jp/a/article/aid/739.aspx
Lisp in JavaScript ttp://courses.cs.vt.edu/~cs1104/LISP/lisp.html
Lisp in AWK ttp://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/lisp/impl/awk/0.html
lisp in elisp byte-code -- emacs-cl ttp://www.lisp.se/emacs-cl/
pylisp , pyscheme
Lisp in Ruby ttp://codezine.jp/a/article/aid/1492.aspx
Lisp in Haskell ttp://www.defmacro.org/ramblings/lisp-in-haskell.html
Lisp in OCaml ttp://sourceforge.net/projects/ocul
Lisp in C++ ttp://www.intelib.org/
Lisp in Squeak ttp://www.zogotounga.net/comp/squeak/lispkit.htm
Common Lisp in C http://clisp.cons.org/

埋め込み言語によって抽象化を最高に活用できるが,それは魔法ではない.
それは本物の・・・コンパイラを書くこととは違うのだ.
Paul Graham
ttp://user.ecc.u-tokyo.ac.jp/~tt076524/onlispjhtml/prolog.html
980デフォルトの名無しさん:2008/04/05(土) 15:00:35
>>975
それ最近ペーパーバックで復刊したんだね。

その後のCPS関連研究まとめ。
http://www.soe.ucsc.edu/~cormac/papers/best-pldi.pdf
その中で一番有名なもの, ANF
http://research.microsoft.com/~akenn/sml/CompilingWithContinuationsContinued.pdf
981デフォルトの名無しさん:2008/04/05(土) 16:01:28
Schemeで書かれた数式処理ソフトでJacalなんてあるんだね
982デフォルトの名無しさん:2008/04/05(土) 18:02:52
>>978
対応している処理系ならばslimeに一票
983デフォルトの名無しさん:2008/04/05(土) 19:28:35
>>980d
ttp://research.microsoft.com/~akenn/sml/CompilingWithContinuationsContinued.pdf
コレの中でMLj(Standard ML/New Jergey)はモナド使ってるって言ってるみたい。
つまり、CPSに関してはSMLもGaucheなんかもHaskellと同じでWadlerのモナドを使う方法ってことかな?

LittleとSeasonedに出てくるコンビネータとCPSの入門的勉強から学問的なCSの世界までの距離を理解するのに好適な論文ですね。
KennedyはMSの人間だけどF#はCPSに関して新しいことを試みてるのかなぁ?
984デフォルトの名無しさん:2008/04/05(土) 20:43:02
そう、ANFとmonadic languageとの関連が書いてあって面白い。

"Compiling With Continuations"は、
ちょっと物足りないところと、うまく整理しきれてないところがあるので、
The Essence of Compiling with Continuations
http://citeseer.ist.psu.edu/flanagan93essence.html
がお勧め。
985デフォルトの名無しさん:2008/04/05(土) 21:05:44
池袋ジュンクにLittle...とReasoned...があったよ。
実物見てから買いたい方ドゾー。
986デフォルトの名無しさん:2008/04/05(土) 21:06:53
みんなDylanを忘れないで
987デフォルトの名無しさん:2008/04/05(土) 21:18:19
>>984
それ見てて思った。中間言語としてANFに変換してるけど、このANFはたぶんBOEHMの木構造と関係がありそうだ。
このANFの段階でOptimizeするってことは、ソースコードからANFでもそのままOptimizeされない記述はインラインアセンブラとして働くってことだね。
つまり、Yコンビネータをはじめとするコンビネータ形式で書かれたソースコードはインラインアセンブラとして働くってこと?
ということは、Lambdaを持ってる言語(λ演算評価機として等価)ならコンビネータ形式で書ければ全く等価なプログラムを書けるってことだ。
Littleでチャ−チ・ロッサーが出てきたの覚えてる?>読んだ人
988デフォルトの名無しさん:2008/04/05(土) 21:28:14
>>986
いい感じなんだけど、いまいち敷居が高いんだよねw
986はDylanの処理系は何を使ってるの?
989デフォルトの名無しさん:2008/04/05(土) 22:05:08
>>986
忘れてた。w
990デフォルトの名無しさん:2008/04/05(土) 22:09:07
>>15で言ってたコンビネータの話って>>987のインラインアセンブラのこと?
991デフォルトの名無しさん:2008/04/05(土) 22:15:34
Schemeを知っていると転職に有利ですか?
992デフォルトの名無しさん:2008/04/05(土) 22:16:33
当然だろ
993デフォルトの名無しさん:2008/04/05(土) 22:39:30
GaucheでPerlみたいにディレクトリ操作ってできますか?
あるディレクトリ内のファイル一覧を表示するとか。
994デフォルトの名無しさん:2008/04/05(土) 22:48:36
sys-readdirとかかな?
マニュアル読むよろし
995デフォルトの名無しさん:2008/04/05(土) 22:50:12
>>993
そこでdirectory-foldですよ。
996デフォルトの名無しさん:2008/04/05(土) 22:55:18
>>686
無限エクステントってSeasonedの20章に出てくるmulti-extentのことか。
997デフォルトの名無しさん:2008/04/05(土) 23:03:55
Lispの発音
[liθp]
998デフォルトの名無しさん:2008/04/05(土) 23:18:49
>>997
New Oxford American Dictionary, 2nd Edition によると
/lisp/ だそうですよ。
999デフォルトの名無しさん:2008/04/05(土) 23:26:44
「コンビネータ形式」ってなんだ?
1000デフォルトの名無しさん:2008/04/05(土) 23:27:51
1000get
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。