Lisp Scheme Part25at TECH
Lisp Scheme Part25 - 暇つぶし2ch1:デフォルトの名無しさん
09/01/13 23:16:33
※ ここはCommon Lisp、SchemeをはじめとするLisp族全般のスレです ※

Part24: スレリンク(tech板)
Part23: スレリンク(tech板)
Part22: スレリンク(tech板)
Part21: スレリンク(tech板)
Part20: スレリンク(tech板)
Part19: スレリンク(tech板)
Part18: スレリンク(tech板)
Part17: スレリンク(tech板)
Part16: スレリンク(tech板)
Part15: スレリンク(tech板)
Part14: スレリンク(tech板)
Part13: スレリンク(tech板)
Part12: スレリンク(tech板)
Part11: スレリンク(tech板)
Part10: スレリンク(tech板)
Part09: スレリンク(tech板)
Part08: URLリンク(pc5.2ch.net)
Part07: URLリンク(pc5.2ch.net)
Part06: URLリンク(pc3.2ch.net)
Part05: URLリンク(pc3.2ch.net)
Part04: URLリンク(pc.2ch.net)
Part03: URLリンク(pc.2ch.net)
Part02: URLリンク(pc.2ch.net)
Part01: URLリンク(piza2.2ch.net)


2:デフォルトの名無しさん
09/01/13 23:17:35
□テンプレート置き場□
URLリンク(wiki.fdiary.net) (id:guest pass:cl)

□参考リンク□

日本Lispユーザ会 (日本語)
URLリンク(jp.franz.com)
ここにかなりの情報があります。削るとAllegro Common Lispのページへ。

プログラミング言語Scheme (日本語)
URLリンク(www.sci.u-toyama.ac.jp)
Schemeの人はまずここを見ましょう。

Schemeへの道 (日本語)
URLリンク(www.stdio.h.kyoto-u.ac.jp)
Schemeの入門サイト。

Practical Scheme (日本語)
URLリンク(practical-scheme.net)
Scheme処理系「Gauche」の作者である川合史朗氏のサイト。
「普通のやつらの上を行け」など、興味深い文書を沢山翻訳されてます。

LispUser.net (日本語)
URLリンク(lispuser.net)
Lisp関連の有用な情報がまとめられています。Common Lispの話題が中心。


3:デフォルトの名無しさん
09/01/13 23:18:30
面倒くせえ
後は誰か頼むw

4:デフォルトの名無しさん
09/01/14 00:08:31
□仕様関係□

CLtL2: Common Lisp the Language 2nd edition (英語)
URLリンク(www-2.cs.cmu.edu)

CLHS: Common Lisp Hyper Spec (英語)
URLリンク(www.lispworks.com)

Common Lisp Quick Reference (英語)
URLリンク(clqr.berlios.de)

R5RS: Revised(5) Report on the Algorithmic Language Scheme (英語)
URLリンク(swiss.csail.mit.edu)

R5RS: Revised(5) Report on the Algorithmic Language Scheme (日本語)
URLリンク(www.sci.u-toyama.ac.jp)

ERR5RS: A proposal for an Extended R5RS Scheme (英語)
URLリンク(scheme-punks.cyber-rush.org)

R6RS: Revised(6) Report on the Algorithmic Language Scheme (英語)
URLリンク(www.r6rs.org)

5:デフォルトの名無しさん
09/01/14 00:08:56
□Wikipedia関連□

URLリンク(ja.wikipedia.org)
URLリンク(ja.wikipedia.org)
URLリンク(ja.wikipedia.org)

□継続関連□

なんでも継続 (日本語)
URLリンク(practical-scheme.net)

Schemeへの道:継続 (日本語)
URLリンク(www.stdio.h.kyoto-u.ac.jp)

継続の使い方 (日本語)
URLリンク(www.geocities.co.jp)

継続の使用法 (日本語)
URLリンク(www.ice.nuie.nagoya-u.ac.jp)

Kahua: 継続ベースのアプリケーションサーバ。
URLリンク(www.kahua.org)

6:デフォルトの名無しさん
09/01/14 00:09:24
□書籍関連(1)□

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

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

How to Design Programs (英語)
URLリンク(www.htdp.org)
Schemeを使った優れたプログラミング入門書。全文がオンラインで読めます。

The Little Schemer (英語)
URLリンク(www.ccs.neu.edu)
The Seasoned Schemer (英語)
URLリンク(www.ccs.neu.edu)
Schemeの教科書として定評のある「Schemerシリーズ」のサポートページです。

The Scheme Programming Language (英語)
URLリンク(www.scheme.com)
Scheme入門書。全文がオンラインで読めます。

7:デフォルトの名無しさん
09/01/14 00:10:01
□書籍関連(2)□

『プログラミングGauche』 (日本語)
URLリンク(ssl.ohmsha.co.jp)
URLリンク(karetta.jp) (立ち読み版)
URLリンク(karetta.jp) (サポートページ)
Scheme処理系言語Gaucheの初の解説書!

『入門Scheme』 (日本語)
URLリンク(www4.ocn.ne.jp)
幻となったScheme入門書。全文がダウンロードできます。

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

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

『On Lisp』 (日本語)
URLリンク(ssl.ohmsha.co.jp)
URLリンク(user.ecc.u-tokyo.ac.jp) (日本語訳HTML版)
URLリンク(www.paulgraham.com) (英語原文がダウンロード可)
LispハッカーPaul Grahamが、Lispの力の源泉であるマクロプログラミングを解説。

8:デフォルトの名無しさん
09/01/14 00:10:14
実装いろいろ
URLリンク(community.schemewiki.org)

9:デフォルトの名無しさん
09/01/14 00:10:24
□その他(1)□

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

Association of Lisp Users (英語): 米国のLispユーザ会です。
URLリンク(www.alu.org)

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

CMU Common Lisp Repository (英語): 新旧様々なプログラムが置いてあります。
fURLリンク(ftp.cs.cmu.edu)

The Common Lisp Cookbook (英語): いわゆるCookbookです。
URLリンク(cl-cookbook.sourceforge.net)

The EncyCMUCLopedia (英語): CMUCL関連文書。CMUCLユーザーでなくとも有益なはず。
URLリンク(www.isr.ist.utl.pt)

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

よろずや (日本語): Lisp関連の実用的な情報が色々。
URLリンク(www.geocities.co.jp)

どう転んでもLisp (日本語): 竹内郁雄氏による発表のスライドです。
URLリンク(jp.franz.com)

Lispとは何か (日本語): 中村正三郎氏による発表のスライドです。
URLリンク(www.asahi-net.or.jp)

10:デフォルトの名無しさん
09/01/14 00:13:38
□その他(2)□

独習Scheme三週間 (日本語): Schemeの教科書。
URLリンク(www.sampou.org)

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

Scheme Hash (英語): S式でXMLを使えるようにするSXML等。
URLリンク(okmij.org)

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

(Scheme) (Lisp) (日本語): 各種Scheme処理系をCygwin上でビルドする方法など。
URLリンク(www.geocities.co.jp)

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

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

Meadow memo: 2ちゃんねるログ: dat落ちした過去スレの一部が見られます。
URLリンク(www.bookshelf.jp)

11:デフォルトの名無しさん
09/01/14 00:14:18
□その他(3)□

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

Schemeのテストコード書いたり、簡単な実行したりコードさらしたりするにはここへカモン。
URLリンク(codepad.org)
コードを書いて実行した時のURLを記録しておけば、実行結果も一緒にさらす事が出来て幸せです。

12:デフォルトの名無しさん
09/01/14 00:14:42
□Schemeの実装(1)□

Gauche: マルチバイト文字に対応したR5RS準拠のScheme処理系。川合史朗氏作。
URLリンク(practical-scheme.net)
URLリンク(jp.youtube.com) (川合史朗氏によるGaucheに関するトーク)

PLT Scheme: DrScheme、MzSchemeなどのR5RS準拠および独自拡張のScheme処理系。
URLリンク(www.plt-scheme.org)

Scheme48: R5RS準拠のSchemeバイトコードインタプリタ。
URLリンク(www.s48.org)

Gambit-C: R5RS準拠のScheme処理系。
URLリンク(dynamo.iro.umontreal.ca)

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

Stalin: 激烈な最適化を施すScheme処理系。人間の書くCコードより速いという噂。
URLリンク(cobweb.ecn.purdue.edu)
fURLリンク(ftp.ecn.purdue.edu) (Stalinの最適化技術を解説した論文)

Bigloo: CLR用のコードを吐けるようになったらしい。
URLリンク(www-sop.inria.fr)

Guile: R5RS準拠のGNU公式拡張用言語。もちろんSLIBも使えます。
URLリンク(www.gnu.org)

JScheme: Javaで書かれたR4RS準拠Scheme処理系。Javaインターフェイスをサポート。
URLリンク(jscheme.sourceforge.net)

13:デフォルトの名無しさん
09/01/14 00:15:16
□Schemeの実装(2)□

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

Ypsilon Scheme System: 藤田善勝氏が開発中のR6RS準拠のScheme処理系。
URLリンク(www.littlewingpinball.net)

Mosh: higepon氏が開発中のR6RS準拠Scheme処理系。
URLリンク(code.google.com)

SECDR-Scheme: SECD machine modelに基づく実装。
URLリンク(lily.fan.gr.jp)

LispMe: Palm上で動くScheme処理系。これもSECD virtual machine。
URLリンク(www.lispme.de)

Minischeme: 1ファイルに凝縮されたScheme処理系。
URLリンク(tinyscheme.sourceforge.net)

TinyScheme: Minischemeを色々弄ったもの。
URLリンク(tinyscheme.sourceforge.net)

Schemix: Linuxのkernelへのパッチで/dev/として扱えるTinyScheme。
URLリンク(www.abstractnonsense.com)

Bit: Minischemeよりも小さい(?)バイトコード変換系。
URLリンク(www.iro.umontreal.ca)

KI-Scheme, AM-Scheme, etc...
URLリンク(www.nifty.com)

14:デフォルトの名無しさん
09/01/14 00:15:53
□Common Lispの実装□

Steel Bank Common Lisp: 代表的なCommon Lisp処理系。CMUCLより派生。
URLリンク(www.sbcl.org)

CMUCL: Common Lisp処理系。
URLリンク(www.cons.org)

GNU CLISP: Common Lisp処理系。バイトコード変換系。
URLリンク(www.clisp.org)

Clozure CL: Common Lisp処理系。
URLリンク(trac.clozure.com)

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

Armed Bear Common Lisp: JVM上で動くCommon Lisp処理系。JVMバイトコード変換系。
URLリンク(armedbear.org)

Allegro Common Lisp: 代表的な商用Common Lisp処理系。
URLリンク(www.franz.com)

LispWorks: 商用Common Lisp処理系。
URLリンク(www.lispworks.com)

Corman Common Lisp: 商用Common Lisp処理系。
URLリンク(www.cormanlisp.com)

Scieneer Common Lisp: 商用Common Lisp処理系。
URLリンク(www.scieneer.com)

15:デフォルトの名無しさん
09/01/14 00:17:40
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ  まピョーん☆
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ

16:デフォルトの名無しさん
09/01/14 00:17:46
□その他の実装□

awklisp: Awkで書かれたわずか500行のLispインタプリタ。
URLリンク(www.accesscom.com)

CAMPUS LIsP Lemon version: Cでわずか1000行。
URLリンク(www-masu.ist.osaka-u.ac.jp)

Lisp interpreter in AS3: ActionScriptで書かれたLispインタプリタ。
URLリンク(www.solve-et-coagula.com)

Arc: ポール・グレアム氏が開発中の新しいLisp。
URLリンク(arclanguage.org)

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

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

GOO: DylanとSchemeの影響を受け、OOPをサポートした新しいLisp。
URLリンク(people.csail.mit.edu)

Liskell: Lispの顔をしたHaskell。
URLリンク(liskell.org)

17:デフォルトの名無しさん
09/01/14 00:18:10
□イベント関連□

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

GaucheNight (2008-03-08)
URLリンク(practical-scheme.net)
「SchemeとGaucheとλとS式を愛するすべての人に贈るマクロな一夜」
出演:川合史朗、伊藤篤、山下伸夫、笹田耕一、ひげぽん、zick、
   黒田寿男、えんどうやすゆき、ほか

GaucheNight (2007-05-09)
URLリンク(practical-scheme.net)
出演:川合史朗、黒田寿男、まつもとゆきひろ(Skype中継)、小飼弾、
   伊東勝利、久井亨、小黒直樹、ほか

黒田寿男氏関係 (黒板の人)
スレリンク(tech板:901-909番)
URLリンク(www.bookshelf.jp)
Schemeのマクロに関する黒田氏の所感
URLリンク(cl-www.msi.co.jp)
それに対する川合史朗氏の応答
URLリンク(practical-scheme.net)
それに対する黒田氏の再反論
URLリンク(cl-www.msi.co.jp)
それに対する川合氏の応答
URLリンク(practical-scheme.net)

その他、黒田氏によるLisp関連のエッセイがこちらで読めます。
URLリンク(cl-www.msi.co.jp)

18:デフォルトの名無しさん
09/01/14 00:20:33
□2ch上にあるLisp関連のスレ□

(make-thread :name common-lisp :part 5)
スレリンク(tech板)
Emacs Lisp 3
スレリンク(tech板)
【魔法】リリカル☆Lisp【言語】
スレリンク(tech板)
【SICP】計算機プログラムの構造と解釈 Part2
スレリンク(tech板)
【普通のやつらの】 Arc Language 0 【上を行け】
スレリンク(tech板)
【CGI】実用比較Lisp vs C/C++【GUI】
スレリンク(tech板)
【ヤパーリ】XMLをS式に置換えていくスレ【LISP最強】
スレリンク(tech板)
Lisp@UNIX版
スレリンク(unix板)
Lisperこそ真のプログラマーよ!!
スレリンク(prog板)
LISPってさ~
スレリンク(sim板)
【数式処理システム】 Maxima 【Common Lisp】
スレリンク(math板)

19:デフォルトの名無しさん
09/01/14 00:22:31
テンプレ長いよ! 連投規制に二回も引っ掛かったよ!

>>3
諦めんなよ!

>>8 >>15
お前らも手伝えよ!

20:デフォルトの名無しさん
09/01/14 00:36:46
これは乙じゃなくてλなんだからね

21:デフォルトの名無しさん
09/01/14 00:55:07
乙です

22:デフォルトの名無しさん
09/01/14 01:00:04
>>1
っT

23:デフォルトの名無しさん
09/01/14 01:37:21
1乙

Little終わったので萩谷先生の関数プログラミング買った。
3月まではこれとものまね鳥読む。

24:デフォルトの名無しさん
09/01/14 04:37:00
てんぷら増えすぎじゃないか?
毎回20レス近く潰れるのは無駄な気がする
どうせ雑談しかしてないし、こんな長いと読まないっしょ
仕様書程度でいいんじゃないか


25:デフォルトの名無しさん
09/01/14 04:47:45
つまり
Common Lisp→EuLisp
R6RS→R5RS
ですね 乙と違うんだからね

26:デフォルトの名無しさん
09/01/14 05:00:33
>>24
「仕方ない。代わりに貼るか→この分量マジすか」
というコンボを喰らった身としては、同意せざるを得ない。

細かい内容は、テンプレ置き場でまとめれば良いと思う。

27:デフォルトの名無しさん
09/01/14 06:12:57
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ まピョーん☆
 彡、   |∪|  /
/ __  ヽノ /
(___)   


28:デフォルトの名無しさん
09/01/14 06:49:51
なんだお前?やるんか?
くらえ!つ nil

29:デフォルトの名無しさん
09/01/14 11:03:20
テンプレ置き場ってないし。

WiLikiあたり借りる?

30:デフォルトの名無しさん
09/01/14 11:21:19
>>29
>>2

31:デフォルトの名無しさん
09/01/15 00:50:24
テンプレが役に立ってないことがよくわかる。

32:デフォルトの名無しさん
09/01/15 07:52:33
>>30 の役には立っている。

33:デフォルトの名無しさん
09/01/15 08:45:23
on lisp読み終わったんだが
次はpractical common lisp読んだらいいのかな

schemeの対応する本はないのかな

34:デフォルトの名無しさん
09/01/15 09:04:48
SICP

35:デフォルトの名無しさん
09/01/15 10:10:36
>>34
昔、飛ばし読みしちゃったので
今度は問題やりながら読んできます

36:デフォルトの名無しさん
09/01/15 17:23:59
URLリンク(cheese.2ch.net)
★100!と1000!の桁数の出し方★

URLリンク(codepad.org)

37:デフォルトの名無しさん
09/01/15 22:59:45
>>36
このほうがいい。10000!の桁数も楽々

(define (place-of n)
(+ 1 (inexact->exact (floor (* 0.4342944819032518 (log n))))))

URLリンク(codepad.org)

38:デフォルトの名無しさん
09/01/16 19:14:11
関数のアーギュメントの順番ってこうするのがいいって習慣みたいなのはないの?


(setf 出力 入力)
(with-open-file 変数 ファイル)

だと、出力 入力の順番なのかな?


この辺の例をみてると
URLリンク(www.geocities.jp)

(fun 主要なもの 補助的なもの さらに補助的なもの...)

と定義してるようにも見えるんだけど 








39:デフォルトの名無しさん
09/01/16 23:10:26
その辺は場合にもよるから一般化はできないね。
反例は例えば with-input-from-string は入力が先だし。
まぁ、主要なもの、対象とするものが前のほう、くらいだろうね。


40:デフォルトの名無しさん
09/01/16 23:53:23
URLリンク(jibun.atmarkit.co.jp)
誰も言及しないのは何故。

41:デフォルトの名無しさん
09/01/17 01:26:16
既にCyanスレで見たから。

42:デフォルトの名無しさん
09/01/17 01:40:01
そんなのもあるんだ

43:デフォルトの名無しさん
09/01/17 01:40:49
クラスのないオブジェクト指向とかS式のないマクロとかは面白いね
大前提をぶっ壊すところが

44:デフォルトの名無しさん
09/01/17 03:00:46
>>43
S式の無いマクロならDylanがあるし、
プロトタイプベースのOOPならSelfとかがあるじゃん。

むしろ、そういう引用元の概念を、あの歳できっちり理解してるのが末恐ろしいよ。

45:デフォルトの名無しさん
09/01/17 04:16:34
5つの自然言語ならよかったのになあ

46:デフォルトの名無しさん
09/01/17 15:28:41
高速で使えるライブラリのそろったCyan実装が登場したら
Ruby以上に世界中のハッカーにインパクトを与えそう。

47:デフォルトの名無しさん
09/01/17 16:11:52
>>40
ニュータイプって感じだね。

48:デフォルトの名無しさん
09/01/17 20:20:32
私は信じんよ、ニュータイプの存在など

49:デフォルトの名無しさん
09/01/17 21:30:31
既存のpythonのlibraryが使えてマクロありなら便利かもね

50:デフォルトの名無しさん
09/01/17 23:55:38
現状だと荒削りだし、そりゃ言い杉なんじゃないかな。将来は楽しみだけど。
素直に理論面とかハードウェアの知識を学んでいったら楽しみだね。
まだだ、まだ終わらんよ!とか言わされちゃうのかなー

51:デフォルトの名無しさん
09/01/18 00:14:09
本人乙www

52:デフォルトの名無しさん
09/01/18 01:22:19
クワトロ・バジーナ降臨ときいてすっ飛んできました。
アクシズ落とさないでね。

53:デフォルトの名無しさん
09/01/18 09:45:33
wikipediaのclikiのリンクが古いままだ

54:デフォルトの名無しさん
09/01/18 12:38:12
>>53
なんのための「Wiki」pediaだよ

55:デフォルトの名無しさん
09/01/18 12:59:52
>>53,54
直しておきますた ノシ

56:デフォルトの名無しさん
09/01/18 18:08:54
>>37
goshだとexactな数値のlogがとれなかった

57:デフォルトの名無しさん
09/01/18 22:18:02
>>56
他の処理系みた?
Gaucheで数値計算するから・・・

58:デフォルトの名無しさん
09/01/18 23:06:53
>>56
普通にとれるだろ
gosh> (log 1000)
6.907755278982137
gosh> (log 10000)
9.210340371976184
gosh> (log 100000)
11.512925464970229
gosh> (* 0.4342944819032518 (log 1000))
3.0
gosh> (* 0.4342944819032518 (log 10000))
4.0
gosh> (* 0.4342944819032518 (log 100000))
5.0

59:デフォルトの名無しさん
09/01/18 23:13:57
gosh> (* 0.4342944819032518 (log 3628800))
6.559763032876794
gosh> (* 0.4342944819032518 (log 93326215443944152681699238856266700490715968264
38162146859296389521759999322991560894146397615651828625369792082722375825118521
0916864000000000000000000000000))
157.97000365471578

60:デフォルトの名無しさん
09/01/18 23:17:51
gosh> (log 402387260077093773543702433923003985719374864210714632543799910429938
51239862902059204420848696940480047998861019719605863166687299480855890132382966
99445909974245040870737599188236277271887325197795059509952761208749754624970436
01418278094646496291056393887437886487337119181045825783647849977012476632889835
95573543251318532395846307555740911426241747434934755342864657661166779739666882
02912073791438537195882498081268678383745597317461360853795345242215865932019280
90878297308431392844403281231558611036976801357304216168747609675871348312025478
58932076716913244842623613141250878020800026168315102734182797770478463586817016
43650241536913982812648102130927612448963599287051149649754199093422215668325720
80821333186116811553615836546984046708975602900950537616475847728421889679646244
94516076535340819890138544248798495995331910172335555660213945039973628075013783
76153071277619268490343526252000158885351473316117021039681759215109077880193931
78114194545257223865541461062892187960223838971476088506276862967146674697562911
23408243920816015378088989396451826324367161676217916890977991190375403127462228
99880051954444142820121873617459926429565817466283029555702990243241531816172104
65832036786906117260158783520751516284225540265170483304226143974286933061690897

61:デフォルトの名無しさん
09/01/18 23:18:15
96848259012545832716822645806652676995865268227280707578139185817888965220816434
83448259932660433676601769996128318607883861502794659551311565520360939881806121
38558600301435694527224206344631797460594682573103790084024432438465657245014402
82188525247093519062092902313649327349756551395872055965422874977401141334696271
54228458623773875382304838656889764619273838149001407673104466402598994902222217
65904339901886018566526485061799702356193897017860040811889729918311021171229845
90164192106888438712185564612496079872290851929681937238864261483965738229112312
50241866493531439701374285319266498753372189406942814341185201580141233448280150
51399694290153483077644569099073152433278288269864602789864321139083506217095002
59738986355427719674282224875758676575234422020757363056949882508796892816275384
88633969099598262809561214509948717012445164612603790293091208890869420285106401
82154399457156805941872748998094254742173582401063677404595741785160829230135358
08184009699637252423056085590370062427124341690900415369010593398383577793941097
00277534720000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000)
+inf.0

62:デフォルトの名無しさん
09/01/18 23:21:43
(log (fact 1000))が計算できないのはGaucheの事情。
URLリンク(practical-scheme.net)

63:デフォルトの名無しさん
09/01/18 23:25:55
URLリンク(practical-scheme.net)

64:デフォルトの名無しさん
09/01/18 23:34:44
一般的なlog10の計算の注意点
URLリンク(codepad.org)

65:デフォルトの名無しさん
09/01/19 11:15:03
on lispの原著が34000円もするなんて・・・
最後のいくつかの章で図がみえないから欲しかったのに

66:デフォルトの名無しさん
09/01/19 17:18:17
何千ページの本なの?

67:デフォルトの名無しさん
09/01/19 20:55:42
URLリンク(www.paulgraham.com)
>> 65 ここから落とせない? 著者公開してるけど.

68:デフォルトの名無しさん
09/01/19 21:32:16
>>67
そこのは、例えばFigure 24.1
が見えないよ。他にも見えない図がいくつかあった

69:デフォルトの名無しさん
09/01/19 21:38:09
on lisp $13 しかし日本への送料が4000円
URLリンク(www.lulu.com)

こっちから買うかな
何冊かまとめ買いすれば送料安くなんないかな

70:デフォルトの名無しさん
09/01/19 22:35:33
日本語訳の本に載ってないって事?

71:デフォルトの名無しさん
09/01/20 00:18:36
URLリンク(www.amazon.co.jp)
URLリンク(www.amazon.com)
高いな

72:デフォルトの名無しさん
09/01/20 22:57:56
Head First Common Lispはまだか。

73:デフォルトの名無しさん
09/01/22 03:10:07
たぶん一生でないよw

74:デフォルトの名無しさん
09/01/22 13:05:51
主婦の友増刊号「誰にもわかるコモンリスプ」

75:デフォルトの名無しさん
09/01/22 14:23:07
片仮名で書くとめちゃくちゃイメージ違うなぁ。

76:デフォルトの名無しさん
09/01/22 16:32:13
フランス語みたい。

イロムサコン・フィヨンセ・コモンリスプ

77:デフォルトの名無しさん
09/01/23 01:35:12
特別寄稿ガイ・スチール・ジュニア氏
「君もリスプやらないか?」

78:デフォルトの名無しさん
09/01/23 02:00:30
「いいこと思いついた。
お前、俺のテイルジャンプで、メッセージパッシングしろ」

79:デフォルトの名無しさん
09/01/23 17:50:52
「アッーーク!」

80:デフォルトの名無しさん
09/01/23 21:18:38
アンジー・コモン・リスプ

81:デフォルトの名無しさん
09/01/23 23:24:26
微妙にワロタ

82:デフォルトの名無しさん
09/01/25 02:43:49
GaucheにIDE付けれの人まだ張り付いてるのか

83:デフォルトの名無しさん
09/01/25 03:26:34
Lisp 系言語だと emacs か vi しか選択肢が無いのは事実だけど、
あらたに統合環境を用意する積極的な理由ってのも無いんだよなー。

欲しいのはデバッガみたいだけど、
仮にデバッガが便利だとしても Scheme にふさわしいデバッガのモデル
は過去事例を研究したところで容易に決められるとは思わんのだよなー。

これだけ長い Lisp の歴史の中でいわゆる「デバッガ」が言及された
ことがそんなにないってのはただの偶然だとでも思ってんだろうか。

84:デフォルトの名無しさん
09/01/25 06:25:23
pltはそのへんがんばってるんじゃないの

85:デフォルトの名無しさん
09/01/25 06:30:20
なんでlispは歴史的にデバッガが言及されないの?

86:デフォルトの名無しさん
09/01/25 08:36:47
>>85
文脈嫁。

>>83 は、GCを考案し、動的言語の先駆けとなったLisp に、デバッガの話が持ち上がらなかったのは、Lispにデバッガが不要だから、と云いたいんだろ。

87:デフォルトの名無しさん
09/01/25 08:47:36
>>83は、これだけ長い Lisp (スレ)の歴史の中で、と言いたかったんだよ。

88:デフォルトの名無しさん
09/01/25 09:10:02
>>83
Schemeの話をLisp系と一般化しないでくれ。Emacs Lispのデバッガはなかなかいい、
CL系は昔から規格に最適化オプションで debug 指定ができたりと、デバッガは
売りにしてたよ。SchemeでもPLTやGuileはがんばってるじゃん。

89:デフォルトの名無しさん
09/01/25 09:43:29
DebuggerのないLisp machineなど存在しない。
もともとsmalltalk実装のモデルになったような
統合プログラミング環境を持っていたのがLisp。
今はむしろLLみたいな軽い環境が流行りで、
外界とのインターフェースは昔より豊か。

90:デフォルトの名無しさん
09/01/25 16:54:11
eclipseあたりに自力で作ってみたらいいのに

91:デフォルトの名無しさん
09/01/25 17:19:03
調べるのめんどくさいんでここで聞きますがscheme ってバイトコードはけるの

92:デフォルトの名無しさん
09/01/25 17:42:27
>>91
Kawa, JSchemeでググレカス

93:デフォルトの名無しさん
09/01/25 18:42:50
>>89
Smalltalkより前にIDEを持っていたLispってどんなLispだよw

94:デフォルトの名無しさん
09/01/25 18:46:35
URLリンク(ja.wikipedia.org)

95:デフォルトの名無しさん
09/01/25 19:05:55
まったく関係ないがh抜き不便

96:デフォルトの名無しさん
09/01/25 19:15:49
アセンブラ使え

97:デフォルトの名無しさん
09/01/25 19:23:10
>>93
TECO+MacLisp
後継のEmacsがSmalltalk-76と同時期。

98:デフォルトの名無しさん
09/01/25 21:57:10
超古代文明の発掘みたいな。
断絶があるのはなぜだろう。

99:デフォルトの名無しさん
09/01/25 21:58:24
車輪の再発明と言ってだな、

100:デフォルトの名無しさん
09/01/26 00:28:22
>>82
別にどんな主張をしようが構わないが、
「デバッガ」っていう重要なカテゴリ以下を私物化してるのがちょっと……。
あれのどこがGaucheのデバッガの話なのよ?

何で、自分のページとか作って、そこでやらないんだろうね?

101:デフォルトの名無しさん
09/01/26 11:20:53
まあWiLilki的にひどすぎるということになれば管理者のShiroさんが強権発動するでしょ

102:デフォルトの名無しさん
09/01/27 13:43:07
俺はffiの項目を私物化したいぞおお
ジョジョオ~

103:デフォルトの名無しさん
09/01/27 21:30:00
継続渡しマクロなんて作るぐらいなら
common lispの上にscheme作っちゃえばいいのに

104:デフォルトの名無しさん
09/01/27 23:30:15
みんながACL使えばみんなが幸せ

105:デフォルトの名無しさん
09/01/27 23:39:46
もっとお手頃価格でACL売ってくれ。
俺も使うから。

106:デフォルトの名無しさん
09/01/28 02:43:48
一方、ロシアのSchemerは黒板を使った。

107:デフォルトの名無しさん
09/01/28 03:34:23
>一方、ロシアのSchemerは黒板を使った。
作らないところが寂しいよな

>もっとお手頃価格でACL売ってくれ。
なんであんなに高いんだろうね?
年間売り上げみてみたいよ。


株主になっても一票そこに投じられそうもないのが悲しいやね

108:デフォルトの名無しさん
09/01/28 13:46:02
ロシアのLisp事情ってどんな感じなんだろう。
あそこは数学も物理も凄いんでしょ?

109:デフォルトの名無しさん
09/01/28 14:21:33
行って確かめてこいよ

110:デフォルトの名無しさん
09/01/28 16:10:27
ロシアは遠いし言葉がわからないから
かわりにロシアンパブ行ってきます。

111:デフォルトの名無しさん
09/01/28 21:13:51
URLリンク(sourceforge.jp)

あとまあ、これもある意味予想通りではあるが、LispやScheme、Haskellと言ったあたりは、
結局のところ「語られる」言語であって、「使われる」言語ではないようだ。
HaskellにしろCommon Lispにしろ、近年ではライブラリも相当揃ってきており、
パフォーマンスの面から言っても実用言語として遜色ないものになりつつあるので、個人的には残念なのだが。

112:デフォルトの名無しさん
09/01/28 21:22:15
Emacs Lispも仲間に入れてほしいんですけど。

113:デフォルトの名無しさん
09/01/28 21:52:50
だが断る

114:デフォルトの名無しさん
09/01/28 22:17:45
各個人の問題として何故使わないのか。

115:デフォルトの名無しさん
09/01/28 22:35:50
先週新聞に載ってたセンター試験の数学ⅡAをやってみたんだけど
21世紀になって10年たとうというのにひどいBASICのプログラムが載ってたんだわ
高校生に勉強させるなら
COMETでもMIPSでもいいからアセンブラでやらせるか
BFで難易度高めにするか
LispやHaskelやForthで教養を身につけさせるかすればいいのに
あるいはスパコンのためにFortranを教えるか


116:デフォルトの名無しさん
09/01/28 22:50:30
>>114
次々と新たな処理系が開発されるのは、既にある処理系を使いたくないのかもな。
勉強のためだとしても、なんで人のソースを読むことより自分で書くことを選ぶのか。
それが問題だと思うよ。

117:デフォルトの名無しさん
09/01/28 22:52:42
IT音痴大国の名に恥じないな。

118:デフォルトの名無しさん
09/01/28 22:58:36
Lispはラテン語ではない。と誰かが言ったとか言わないとか。

119:デフォルトの名無しさん
09/01/29 20:26:19
むしろラテン語だろ

120:デフォルトの名無しさん
09/01/29 22:59:04
まあもう少し待ってれば予想外の変化が起きるかもよ

121:デフォルトの名無しさん
09/01/29 23:03:38
Lisp/Scheme類は法律で禁止され、地下で開発するしかないのだ。

122:デフォルトの名無しさん
09/01/30 00:02:26
>>115
あれはなんの冗談なんだろうと思ったな。
釣りじゃないのか、とか日付を確認したりとか。
徐々にその事実が恐ろしくなっていった。

>LispやHaskelやForthで教養を身につけさせるかすればいいのに
お前は俺かw


123:デフォルトの名無しさん
09/01/30 00:06:09
BFで難易度をってところにワロタ

124:デフォルトの名無しさん
09/01/30 06:22:02
URLリンク(d.hatena.ne.jp)

125:デフォルトの名無しさん
09/01/31 00:58:37
Lisperだけで会社作ったら、経営していけるかな。

126:デフォルトの名無しさん
09/01/31 01:03:15
URLリンク(codepad.org)

127:デフォルトの名無しさん
09/01/31 05:02:34
漢詩って何かいいね。


128:デフォルトの名無しさん
09/01/31 05:15:40
情景が目に浮かぶようだね。霜ってのがまた良いな。

……ところで、ここ何のスレだっけ?

129:デフォルトの名無しさん
09/01/31 15:23:31
comp.lang.lispに何度か書き込みしてるはずなのに反映されない
なんでだろ

130:デフォルトの名無しさん
09/01/31 16:48:38
ネットニュースだから配送の問題とか?

131:デフォルトの名無しさん
09/02/01 13:40:24
URLリンク(quasiquote.org)
をconfigure make make installしてから

gosh> (use lazy-ffi)
*** ERROR: Compile Error: failed to link "lazy-ffi" dynamically: /usr/lib/gauche/site/0.8.12/i486-pc-linux-gnu/lazy-ffi.so: undefined symbol: strlcpy
"(stdin)":2:(use lazy-ffi)

Stack Trace:
_______________________________________
gosh>


何が問題なのでしょうか

132:デフォルトの名無しさん
09/02/01 13:44:27
だからここはサポート掲示板じゃねえっつーの
またどうせバージョン違うんだろ

133:デフォルトの名無しさん
09/02/01 14:06:25
>>131
glibcにOpenBSD由来のstrlcpy(3)はありません。
URLリンク(www.openbsd.org)
から持ってきてリンクしてください。
デストリによってはパッケージで提供されているかも知れませんが。


134:デフォルトの名無しさん
09/02/01 14:12:09
やっぱlinuxってきもいなー

135:デフォルトの名無しさん
09/02/03 04:35:42
gimp2.6.3(ほぼR5RS互換) のscript-fu で

(let ((foo 2)
(bar 3))
(display foo)
(display bar))
->23#t

これと同じ事がしたくて(返り値は無視して)
下のように書きましたが変数ではなく
文字列として扱われてしまいます。

(let ((foo 2)
(bar 3))
(mapcar (lambda (arg)
(display arg)) '(foo bar)))
->foobar(#t #t)

上に書いたlispと同じ動作にするにはどう書けば良いでしょうか?

136:デフォルトの名無しさん
09/02/03 06:59:00
>>135
「'」(クォート)をつかわず、 (list foo bar) としたら良いのでは。
あるいは `(,foo ,bar) (先頭はバッククォートね)かな。

137:デフォルトの名無しさん
09/02/03 09:54:45
letやmapcarが出てくるのにquoteが判らないとは
えらい偏った学び方したんだな
quoteはLISPの基礎

138:デフォルトの名無しさん
09/02/03 13:39:03
>>137
偏ってない。変数とシンボルを混同するのはLISPの名物。
変数とimmutableな文字列なら、混同することはあまりないのだが。

最近思うんだが、LISPは動的スコープに戻したほうがいいんじゃないか?
変数は常に(eval シンボル)と等価で、関数は常にS式と等価。
静的スコープではこれが成立しない。

139:デフォルトの名無しさん
09/02/03 14:13:37
'(1 2)と(list 1 2)の結果が同じだし、勘違いしちゃうことってあるよね

140:デフォルトの名無しさん
09/02/03 16:24:19

'multiple-value-bindについてるクオートがよくわからない.


(defmacro mvbind (&rest args)
(let ((name 'multiple-value-bind))
`(,name ,@args)))


141:デフォルトの名無しさん
09/02/03 17:07:30
これでうまくいった
(let ((foo 2)
(bar 3))
(mapcar (lambda (arg)
(display (eval arg))) '(foo bar)))

142:デフォルトの名無しさん
09/02/03 17:31:30
>>138
かなり偏ってるね
混同するのが名物とか、変な偏見も持ってそうだが
多分>>140-141もお前じゃないか?
きちんとした処理系で基礎から勉強し直した方がいいと思うね


143:デフォルトの名無しさん
09/02/03 18:38:40
>>136
そうだね。前スレ372-390でも話題になってたよね。
(list foo bar)
== (list `,foo `,bar)
== `(,foo ,bar)
quasiquoteの分配則では気をつけないとね。

144:デフォルトの名無しさん
09/02/03 18:43:43
データとコードの違いは最初に叩き込まれると思っていたがそうでもないのか?

145:デフォルトの名無しさん
09/02/03 18:48:15
>>139
>結果が同じだし

微妙な違いは理解してるのか?
同じ臭いがするんだよ>>138-141はよ。


146:デフォルトの名無しさん
09/02/03 19:05:17
マクロの勉強でもしてみれ

147:デフォルトの名無しさん
09/02/03 19:11:52
eval使って解決した気になれるとか、初心者の特権だねえ。

148:デフォルトの名無しさん
09/02/03 19:15:57
>>135
それよりmapcarの使い所を間違えてないかね?
処理系変えるとうまく動かないかもよ。
quoteはちゃんと理解した方がいいよ。

>>140
どんだけ頓珍漢なことやってるのかって
最初は気付かないもんだよ。

149:135
09/02/03 20:15:17
ありがとうございます。
もう一度 quote の部分を見直しましたが
まだいまいちわかっていないので
もう一度じっくり読んでみます。

>>148
mapcar の使い方を確認しようと
Revised5 Report on the Algorithmic Language Scheme
を見てみたところ mapcar は乗っていなかったので
map を使うことにしました。

150:デフォルトの名無しさん
09/02/03 21:12:28
>>135は展開すると
'(foo bar)
== (list 'foo 'bar)
となる。
これと>>143を比べると違うことは明白。
(list 'foo 'bar)ではlistの要素はシンボルになっている。>>135
(list foo bar)ではlistの要素は変数になっている。>>136,>>143

151:デフォルトの名無しさん
09/02/03 21:34:33
初心者ならそこまで気を回さなくてもいいかもしれないけど
(equal? '(foo bar) (list 'foo 'bar)) => #t
だけど
(eq? '(foo bar) (list 'foo 'bar)) => #f ; ほとんどの場合
quoteはquoteでlistとは別物(返り値も含めて、書き換え可能かどうか等も)
返ってくる値がequalなだけ

152:デフォルトの名無しさん
09/02/03 23:03:12
それからR5RSのmapは返り値の順序は規定されているけど
評価順序は未規定
だから
(map display '(A B C)) => '(#<undef> #<undef #<undef>)
標準出力にはABC、ACB、BAC、BCA、CAB、CBAのいずれか
評価順序をリストの順通りにしたいのならfor-eachを使う
(for-each display '(A B C)) => #<undef>
標準出力には必ずABC
評価順序と戻り値のデータ構造内の順序の区別は
HaskelのIOモナドにもつながる
(たぶん)
R5RSでは関数の引数の評価順さえ未規定

153:デフォルトの名無しさん
09/02/03 23:52:11
>>152
>>それからR5RSのmapは返り値の順序は規定されているけど
>>評価順序は未規定

うわ…これ今ごろ知ったよ、ありがとう。つかこの仕様で誰が得するんだろ。
慌てて調べたけど、Gauche は独自仕様で常にリスト内の順番どおり、なのね。
ちょっと安心。

154:デフォルトの名無しさん
09/02/04 00:06:16
並列処理が楽になるとは聞いたな。

155:デフォルトの名無しさん
09/02/04 12:25:14
少しActorも意識してるんだろうね。
各要素に並行にfがメッセージパッシングされて。

>>138
funarg問題の時代までタイムスリップかよ。



156:デフォルトの名無しさん
09/02/04 13:04:44
funarg問題の例: compose
(lambda (f g) '(lambda (x) (f (g x))))

こうすればいいんじゃないの?
(lambda (f g) `(lambda (x) (,f (,g x))))

157:デフォルトの名無しさん
09/02/04 22:50:12
quoteが嫌いな人はクロージャやsyntax-rulesを使う
quoteが大嫌いな人はPythonやRubyを使う
そんな気がする

158:デフォルトの名無しさん
09/02/05 00:05:31
quasi-quoteの便利さは異常。
そんな嫌いになるなんて、これが本当のくぉーつ嫌いってやつか・・・

159:デフォルトの名無しさん
09/02/05 00:51:16
昔のマクロにはバッククォートなんてなかったよな
ひたすらlistでS式をこさえてたっけw

160:デフォルトの名無しさん
09/02/05 03:32:58
どんだけ昔の人だよ

161:デフォルトの名無しさん
09/02/05 03:40:10
Lisp-85とかって言っても分からんだろうなw

162:デフォルトの名無しさん
09/02/05 03:53:31
そんな最近かよ
とっくにバッククオートあるよw

163:デフォルトの名無しさん
09/02/05 04:06:48
Lisp-85ってS-OSというZ-80のOS上で動く奴なんだが
fexpr形式やmacro形式はあってもバッククォートは無かったぞ

164:デフォルトの名無しさん
09/02/05 08:52:25
Alan Bawden, "Quasiquotation in Lisp"によれば、

 現在とは少し記号法が違うが、1972年のConniverが現代的な
 quasi-quoteの起源。

 少なくとも1977年ごろのLisp machineには、現在使われているのと
 ほぼ同じquasi-quoteがあった。

ということらしい。

D. V. McDermott and G. J. Sussman, "The Conniver reference manual," 1972
fURLリンク(publications.ai.mit.edu)

Alan Bawden, "Quasiquotation in Lisp," 1999
URLリンク(citeseerx.ist.psu.edu)



165:デフォルトの名無しさん
09/02/05 10:11:52
'の逆はevalだと思ってた

166:デフォルトの名無しさん
09/02/05 10:29:33
>>163
Z80には荷が重かったのでは
メモリどんだけ積んでたとか知らないけど
展開後は再帰関数のかたまりだし

167:デフォルトの名無しさん
09/02/05 10:39:22
全然問題ない。

168:デフォルトの名無しさん
09/02/05 10:57:09
あっそ
ならLisp-85作った人が入れ忘れたんだね

169:デフォルトの名無しさん
09/02/05 11:05:52
quasi-quoteを効率を保ってきちんと実装するのは意外と難しい。
80年代になってもマクロと組み合わせた時の実装手法の論文があった。
アンチquasi-quote派というのが昔はいた。Common Lispで決着。

170:デフォルトの名無しさん
09/02/05 11:51:35
Gauche WiLiLiのあんまり目立たないとこに自分の作ったパッケージ書き足す方法はないものだろうか

171:デフォルトの名無しさん
09/02/05 16:28:07
>>156
その関数の引数f,gにシンボルxを引数として渡すと死ねる。


172:デフォルトの名無しさん
09/02/05 18:05:14
やっぱり gensym が必要なんだね。

173:デフォルトの名無しさん
09/02/05 18:47:23
関数名じゃなく、関数「値」を式に埋め込めばいい。
gosh> (define x (list + 1 2))
x
gosh> (define y (list '+ 1 2))
y
gosh> (define + -)
+
gosh> (+ 1 2)
-1
gosh> (eval x (current-module))
3
gosh> (eval y (current-module))
-1

174:デフォルトの名無しさん
09/02/05 20:23:37
再帰関数だったら?

175:デフォルトの名無しさん
09/02/05 21:49:55
そこまで行くとR5RSでも解決できてるかどうか怪しい
R6RSは再定義禁止だっけ

176:デフォルトの名無しさん
09/02/05 21:59:07
R5RSの件は
(define f (letrec ((f ...)) f))
と書けば安全かも

177:デフォルトの名無しさん
09/02/06 08:10:38
仕様に自由があるから面白い。

178:デフォルトの名無しさん
09/02/06 16:01:07
>>173
で'の使い方わかった気がするけど
本格的に勉強するならどの本がいいのでしょうか?

179:デフォルトの名無しさん
09/02/06 17:53:52
>>178
SICPがいいよ
マクロの話題は一切ないけど、マクロは遊ぶものであって勉強するものではない
それでもSICPがSchemeを使ってる理由を考えながら読めばおもしろいかもね

180:デフォルトの名無しさん
09/02/06 18:39:03
俺はOnLispをお勧めする。

181:デフォルトの名無しさん
09/02/06 19:54:30
ふつうにあのお魚の本でよくないか?

182:デフォルトの名無しさん
09/02/06 20:48:41
処理系のソースで十分

183:デフォルトの名無しさん
09/02/06 21:37:03
URLリンク(user.ecc.u-tokyo.ac.jp)
ほれ

184:デフォルトの名無しさん
09/02/06 23:02:05
うわーっ!びっくりした
と避ける

185:デフォルトの名無しさん
09/02/07 08:31:34
>>169
ふむふむ、勉強になります。
そういえば関係あるかわからないけど、 scheme じゃなくて elisp も、
Emacs19 のころは

`(foo ,bar)

とはかけなくて、

(` (foo (, bar)))

と書いていたような。

186:デフォルトの名無しさん
09/02/07 13:41:36
関係ないけどチャイティンのLispでは'はシンボルで
(QUOTE X) == (' X)
って書いてたな

187:デフォルトの名無しさん
09/02/07 14:53:09
(define (% num1 num2) (remainder num1 num2))
としてるんですが、関数に別名与えるもっと良い方法はありますか?

188:デフォルトの名無しさん
09/02/07 15:21:52
引数の数が一致しているのなら
(define % remainder)

189:デフォルトの名無しさん
09/02/07 17:06:46
それでいいんですね。
気づきませんでした。

ありがとうございます。

190:デフォルトの名無しさん
09/02/07 19:07:14
指定のクロージャが束縛されているシンボルを探す方法ってありますか?

191:デフォルトの名無しさん
09/02/07 20:08:34
処理系によってはあるかもしれないけどRnRSにはないんじゃないかなぁ。
CLにはあるかもしれませんけどSchemerだから知らないです。
シンボルのリストを引数に与えるのであれば
グローバル束縛されているクロージャをevalで取り出してeq?して調べられるけど
グローバル変数のリストはどうやって得ればいいかわかりません。
それにローカル束縛も含めるとなると不可能じゃないでしょうか。

192:デフォルトの名無しさん
09/02/07 20:28:40
CL なら do-symbols で探せるんじゃないかと。

193:デフォルトの名無しさん
09/02/07 22:01:31
Haskellとlispの得意不得意ってどんなところなのでしょうか?

194:デフォルトの名無しさん
09/02/07 22:44:15
別に無いよ?

195:デフォルトの名無しさん
09/02/07 22:53:19
>>193
特にないんじゃないの?
文字列を扱うとめちゃくちゃメモリ食うってのがHaskellの弱点かもしれんけど
今時のマシンだったら何の問題も無いし。



196:デフォルトの名無しさん
09/02/07 22:56:48
Haskellとlispを戦わせたくてしょうがないらしい

197:デフォルトの名無しさん
09/02/07 23:04:03
ムシキングか何かでやってください

198:デフォルトの名無しさん
09/02/07 23:39:04
[Lisp] 攻撃:85 素早さ:94 防御:96 命中:68 運:32 HP:154
[Haskell] 攻撃:68 素早さ:55 防御:65 命中:52 運:31 HP:233

Lisp vs Haskell 戦闘開始!!
[Lisp]の攻撃 HIT [Haskell]は91のダメージを受けた。
[Haskell]の攻撃 HIT [Lisp]は11のダメージを受けた。
[Lisp]の攻撃 HIT [Haskell]は109のダメージを受けた。
[Haskell]の攻撃 HIT [Lisp]は0のダメージを受けた。
[Lisp]の攻撃 HIT [Haskell]は76のダメージを受けた。
[Lisp]が[Haskell]を倒しました(ラウンド数:3)。
魔法のMD5 - MD5バトル URLリンク(www.newspace21.com)

199:デフォルトの名無しさん
09/02/07 23:41:50
いちいち貼らなくていいよ

200:デフォルトの名無しさん
09/02/07 23:49:28
>>193
Haskellは近くのコンビニにぬり絵が売ってます。
Lispはドンキホーテに行けばぬいぐるみが売っています。
>>193君はどちらが好きですか?

201:デフォルトの名無しさん
09/02/08 00:02:40
外に出なくても済む方がいいです

202:デフォルトの名無しさん
09/02/08 07:17:52
λ

203:デフォルトの名無しさん
09/02/08 08:13:10
maximaの中に面白いのみっけた

(defun for-eval-then-quote (var)
`(list 'quote ,var))

(setq x 1)
(for-eval-then-quote x)
-> '1


204:デフォルトの名無しさん
09/02/08 12:37:31
>>203
えーと、ほんとにそれを動かしたら'1になったのかい?
正しい結果は(list 'quote 1)になるのでは。
関数とマクロの評価はごっちゃにしないように。
この辺り何か思い違いしてると思うよ。
ちなみに'1を期待するなら関数の中身は`',var または(list 'quote var)

205:デフォルトの名無しさん
09/02/08 13:23:49
>>204
間違えました
(eval (for-eval-then-quote x))
->'1

206:デフォルトの名無しさん
09/02/09 01:08:08
loopマクロ勉強したのにiterateの方が使われてたり
言語の発展はゆるやかだ
とか言ってたのどこのどいつだ

207:デフォルトの名無しさん
09/02/09 01:52:43
>>206
それ言語じゃなくてライブラリの発展だと思うんだが……。

208:デフォルトの名無しさん
09/02/09 02:14:28
>>206
これ読め。
スレリンク(tech板:251番)

209:デフォルトの名無しさん
09/02/10 12:06:52
[clojure] 攻撃:28 素早さ:67 防御:78 命中:87 運:55 HP:202
[Qi II] 攻撃:51 素早さ:21 防御:48 命中:69 運:23 HP:189

clojure vs Qi II 戦闘開始!!
[clojure]の攻撃 HIT [Qi II]は1のダメージを受けた。
[Qi II]の攻撃 HIT [clojure]は16のダメージを受けた。
[clojure]の攻撃 HIT [Qi II]は56のダメージを受けた。
[Qi II]の攻撃 HIT [clojure]は1のダメージを受けた。
[clojure]の攻撃 HIT [Qi II]は56のダメージを受けた。
[Qi II]の攻撃 HIT [clojure]は10のダメージを受けた。
[clojure]の攻撃 HIT [Qi II]は38のダメージを受けた。
[Qi II]の攻撃 HIT [clojure]は1のダメージを受けた。
[clojure]の攻撃 HIT [Qi II]は25のダメージを受けた。
[Qi II]の攻撃 HIT [clojure]は1のダメージを受けた。
[clojure]の攻撃 HIT [Qi II]は57のダメージを受けた。
[clojure]が[Qi II]を倒しました(ラウンド数:6)。
魔法のMD5 - MD5バトル URLリンク(www.newspace21.com)

210:デフォルトの名無しさん
09/02/10 13:48:31
kill

211:デフォルトの名無しさん
09/02/10 15:30:33
連邦のモビルスーツは化け物か!?

212:デフォルトの名無しさん
09/02/11 05:14:36
array->list 変換関数がみつからない
自分で書くものなの?
(array->list
#2a((1 2)(3 4)))
->((1 2)(3 4))

213:デフォルトの名無しさん
09/02/11 23:55:21
>>自分で書くものなの?
R5RSには記述がないからそうだと思うけど,
それより#2a(...の2aって何?

214:デフォルトの名無しさん
09/02/12 00:02:23
#2A(..)ってのはCommon Lispの二次元配列かな。
ARRAY (2)のリストになってほしいのか、リストのリストになってほしいのか。
まぁ、結論からいうと>>212ARRAY (2 2)はLISTと互換性がないからムリ。自分で書く。
ベクタとかなら (coerce #(1 2 3) 'list) で変換できる。

215:デフォルトの名無しさん
09/02/12 03:21:33
lispに興味があるんですが、
いまからlispを勉強するならなんの書籍がお勧めですか?
SICPってのがお勧めっぽいんですが、MITで使われてるとなると・・・
読みこなせるかなー

216:デフォルトの名無しさん
09/02/12 05:29:30
オンラインで読める無料の
・独習Scheme三週間 URLリンク(www.sampou.org)
・入門Scheme URLリンク(www4.ocn.ne.jp)

書籍じゃないけど
・もうひとつのScheme URLリンク(www.shido.info)
あたりを読んでから買えばいいんじゃないでしょうか。

217:デフォルトの名無しさん
09/02/12 05:46:35
>>215
SICP読んでみて、自分に合いそうなら買うのがいいとおも。
URLリンク(mitpress.mit.edu)

218:デフォルトの名無しさん
09/02/12 10:05:25
SICP日本語版はちょっと高い

219:デフォルトの名無しさん
09/02/12 10:48:56
なんでいきなりSICPなんじゃーー

220:デフォルトの名無しさん
09/02/12 11:11:47
「良い本だ」ってよくScheme関連のWEBに載ってるから。

221:デフォルトの名無しさん
09/02/12 11:20:35
良い本には違いないけど、
SICPも買いたいなら、別の本と併読した方がいいと思う。
言語仕様書が日本語化されているからそれでいいか、
って人ならSICPだけで問題なし。

222:デフォルトの名無しさん
09/02/12 12:06:25
maximaが使いたいだけだったので
on lispはじっくり読んだが
SICPは問題もやらずに流し読み

223:デフォルトの名無しさん
09/02/12 20:13:48
SICP は Scheme の本というわけではない。
Scheme を使って解説してる本。

224:デフォルトの名無しさん
09/02/12 20:19:01
>>223
え、そうなんですか?
自分はアルゴリズムの勉強のために買いました。

序盤の関数 f(x) の話とか、大学の数学が懐かしいです。

225:デフォルトの名無しさん
09/02/12 20:22:09
SICPにアルゴリズムの話が出てないわけではないが、
SICPをやってもアルゴリズムを勉強したとは言えない。


226:デフォルトの名無しさん
09/02/12 20:22:39
>>223
何を解説してるの? w

227:デフォルトの名無しさん
09/02/12 20:28:22
>>226

っ人生

228:デフォルトの名無しさん
09/02/12 20:36:31
>>226
本のタイトル

229:デフォルトの名無しさん
09/02/12 20:44:04
>>226
降り続く雨
きしむ廊下
立ち止まる足音
遠のく意識

230:デフォルトの名無しさん
09/02/13 01:35:07
SICP読んだら魔法使いになれますか?

231:デフォルトの名無しさん
09/02/13 07:26:27
>>230
なれません。

232:デフォルトの名無しさん
09/02/13 07:45:20
>>230
なれます。
就活に有利です。

233:デフォルトの名無しさん
09/02/13 11:01:41
>>230
さあ、30歳になるまで貞操を守る作業に戻るんだ

234:デフォルトの名無しさん
09/02/13 14:39:58
30歳を越えてるのですがSICPは読めますか?

235:デフォルトの名無しさん
09/02/13 14:51:53
読めなかったら困ると思いますよ

236:デフォルトの名無しさん
09/02/13 15:01:35
60歳とかでも読めるらしいですよ
読めなかったら数学勉強してから再挑戦しましょう

237:デフォルトの名無しさん
09/02/13 19:19:40
30歳過ぎてもSICP読むと童貞になりますか?

238:デフォルトの名無しさん
09/02/13 19:34:56
俺はSICPを読んで、背が10cm伸びたよ

239:デフォルトの名無しさん
09/02/13 19:49:08
SICP読んで宝くじ当たったよ。


240:デフォルトの名無しさん
09/02/13 19:50:51
もしかして訳者の和田さんってスーフリの和田さん?

241:デフォルトの名無しさん
09/02/13 19:52:39
プログラマ50人に1人ぐらいはSICP読んでるよね。

242:デフォルトの名無しさん
09/02/13 19:54:25
>>250
和田って俺のことだけど。

243:デフォルトの名無しさん
09/02/13 20:28:13
SICP未読で許されるのは小学生までだよね!

244:デフォルトの名無しさん
09/02/13 22:31:02
ちょっと待ってくれ。「人生に必要な知恵はぜんぶ幼稚園の砂場で学んだ」とあるように、幼稚園のうちに読んでおくべきものではないだろうか?

245:デフォルトの名無しさん
09/02/13 22:34:17
なんてこったい/(^o^)\

246:デフォルトの名無しさん
09/02/13 22:52:02
人生に必要な知恵はぜんぶサンドボックで学んだ。


247:デフォルトの名無しさん
09/02/13 22:55:25
俺、人生に必要な知恵はぜんぶ死後の世界で学ぶんだ…

248:デフォルトの名無しさん
09/02/13 23:02:42
次はアメンボに生まれてきたりして

249:デフォルトの名無しさん
09/02/13 23:07:08
おれも人生に必要なことは幼稚園で一通り学んだ覚えがあるな

250:デフォルトの名無しさん
09/02/13 23:14:11
>>249
ってことは、幼稚園で、チュー済ませたタイプか。

251:デフォルトの名無しさん
09/02/13 23:45:23
登り棒オナニーなら幼稚園の時に覚えました

252:デフォルトの名無しさん
09/02/14 00:48:59
SICP以外誇れるものはないのか

253:デフォルトの名無しさん
09/02/14 00:54:55
essential of なんたらとかreasoned schemerとかもいいかも

254:デフォルトの名無しさん
09/02/14 01:00:19
時代は宝石の名前の言語じゃね?

255:デフォルトの名無しさん
09/02/14 01:05:57
党員の友人とMercuryを学んでいます。

256:デフォルトの名無しさん
09/02/14 01:13:10
Perlのことですね、わかります

257:デフォルトの名無しさん
09/02/14 01:27:06
あのバージョン6がすべった言語のことか

258:デフォルトの名無しさん
09/02/14 01:28:03
>>255
それは金属であって宝石ではない(゚д゚)!

259:デフォルトの名無しさん
09/02/14 01:28:14
真珠の綴りはPerlじゃないぞ・・・

260:デフォルトの名無しさん
09/02/14 01:32:50
まぁなんにせよ変な宗教言語は使いたくないわなw

261:デフォルトの名無しさん
09/02/14 05:43:57
()とか幼稚園じゃ習わなかった

262:デフォルトの名無しさん
09/02/14 09:40:03
幼稚園の時、世の中はすべてnilだと習った。

263:デフォルトの名無しさん
09/02/14 09:44:22
うちの幼稚園ではnil派と()派が闘争を繰り返していた。

264:デフォルトの名無しさん
09/02/14 10:01:49
little schemerって幼稚園児でも理解できるように書かれたんだっけ

265:デフォルトの名無しさん
09/02/14 11:41:33
誰が象のラムダ君役をするかで喧嘩になってみっちゃんが泣いた。

266:デフォルトの名無しさん
09/02/14 11:43:25
ここは幼稚園で人生のすべてが再帰的だと悟ったみなさんが集まるスレですかね。

267:デフォルトの名無しさん
09/02/14 11:45:16
継続渡しスタイルで幼稚園ドロップアウトした。

268:デフォルトの名無しさん
09/02/14 12:36:37
ところで、
チョコはいくつもらえましたか

269:デフォルトの名無しさん
09/02/14 12:38:38
カーチャンから一個、姉さんから一個

270:デフォルトの名無しさん
09/02/14 12:44:26
(´;ω;`)

271:デフォルトの名無しさん
09/02/14 12:46:02
ええい、FOR文でもらえた奴はいないのか!

272:デフォルトの名無しさん
09/02/14 12:50:04
「末尾再帰!」と叫んで保母さんのスカートをめくったのはいい思い出

273:デフォルトの名無しさん
09/02/14 13:14:52
Next Boston Lisp Meeting: Monday February 23th 2009 at 1800 at MIT 34-401B
URLリンク(fare.livejournal.com)

vyzo will talk about gerbil, a little language for distributedprogramming
using PLT-Scheme. Gerbil is a macro language that provides facilities
for actor-based distributed programs and transparent network simulation.

これおもしろそうね。



274:デフォルトの名無しさん
09/02/14 18:38:38
Seasoned Schemer ってどうですか?

275:デフォルトの名無しさん
09/02/14 18:39:22
Let Over the Lambda ってどうですか?

276:デフォルトの名無しさん
09/02/14 22:52:52
海は死にますか?

277:デフォルトの名無しさん
09/02/14 23:11:19
nilもそうですか?

278:デフォルトの名無しさん
09/02/14 23:18:17
水曜どうですか?

279:デフォルトの名無しさん
09/02/15 00:06:17
明日来てくれるかな?

280:デフォルトの名無しさん
09/02/15 00:43:26
このスレのネタの応酬はハイレベル過ぎて

281:デフォルトの名無しさん
09/02/15 00:50:07
終いますか~?

282:デフォルトの名無しさん
09/02/15 00:58:25
括弧の山を愛する連中の嗜好が平凡なわけがなかった・・・・

283:デフォルトの名無しさん
09/02/15 01:02:23
別に愛してるわけじゃないけど、無いと不安になるというか不安定に感じる。

284:デフォルトの名無しさん
09/02/15 01:44:31
十分平凡でないです!

285:デフォルトの名無しさん
09/02/15 17:10:57
アイちゃんも冗談を言うようになったか。

286:デフォルトの名無しさん
09/02/15 20:27:36
>>274
何が?
俺は好きだよ?

287:デフォルトの名無しさん
09/02/15 23:07:40
hogehoge

288:デフォルトの名無しさん
09/02/15 23:40:17
(hage? >287)

289:デフォルトの名無しさん
09/02/15 23:54:06
一連の1行の糞レスをあぼーんするプログラムを作れ

290:デフォルトの名無しさん
09/02/15 23:59:14
(waha >>288)

291:あぼ~ん
09/02/16 00:38:22
あぼ~ん

292:デフォルトの名無しさん
09/02/16 02:11:17
>>289
navi2chちょっといじればいいだけ

293:デフォルトの名無しさん
09/02/18 03:08:12
iPhone/iPod touch用のLisp/Schemeを発見。次スレのテンプレに入れて。

URLリンク(www.turbozen.com)
URLリンク(programming.nu)

294:デフォルトの名無しさん
09/02/18 04:15:12
こういうlist が返ってくるときに
((1 2 3) (1 2 3) (1 2 3))

こういう処理にするにはどうすればできますか?
(map + '(1 2 3) '(1 2 3) '(1 2 3))

295:デフォルトの名無しさん
09/02/18 04:25:47
(apply map (cons + list))

296:デフォルトの名無しさん
09/02/18 04:36:47
>>295
ありがとうございます!

297:デフォルトの名無しさん
09/02/19 10:24:17
>>293
wikiのテンプレに書き加えておいて。

298:デフォルトの名無しさん
09/02/20 00:27:38
(setq list1 '((message "X") (message "Y")))
があったとして、list1 の各要素を順番に実行していく方法を教えてください。


299:デフォルトの名無しさん
09/02/20 00:38:32
(eval (cons 'progn list1))
こういう話?
それともこんなのをお望み?
(mapcar #'(lambda (x) (apply (car x) (cdr x))) list1)

300:デフォルトの名無しさん
09/02/20 00:44:13
(mapcar #'eval '((message "X") (message "Y")))
とかでもいいのか。

301:デフォルトの名無しさん
09/02/20 01:01:05
仮定が分からないな。
messageというのが関数なのか?
(setf *func-hash* (make-hash-table))
(setf (gethash 'message *func-hash*) #'(lambda (x) (princ x)))
(setf list1 '((message "x") (message "y")))
(mapc #'(lambda(x)(funcall (gethash (car x) *func-hash*) (cadr x))) list1)
=> 以下が結果 maximaとかはこの手のことをやってるね。
xy
("x" "y")

302:298
09/02/20 03:13:07
>>299
>(eval (cons 'progn list1))

すごいです。これでできました。
ありがとうございました。

303:デフォルトの名無しさん
09/02/20 05:52:44
Scheme

(let ((list1 '((display "X") (display "Y"))))
 (map eval list1))
⇒XY(#<void> #<void>)

304:デフォルトの名無しさん
09/02/21 01:33:52
(cons 1 '(2 3))
-> (1 2 3)

となりますが

(cons '(1 2) 3)
-> ((1 2) . 3)

になりますよね

今は (append '(1 2) '(3)) と書いてますが
(cons 1 '(2 3)) に比べて冗長だと感じます
もっと良い書き方はありますか?

305:デフォルトの名無しさん
09/02/21 01:51:17
書き方というか、片方向リストの仕様だから

306:デフォルトの名無しさん
09/02/21 03:11:26
(define (wahacons a b) (append a (list b)))
(wahacons '(1 2) 3)

307:デフォルトの名無しさん
09/02/21 05:12:06
>>305
仕様ですか…。
>>306
関数を書いてしまえば良かったんですね
ありがとうございます

308:デフォルトの名無しさん
09/02/21 06:25:59
>>307
quasiquoteは?

> (define x '(1 2))
x
> `(,x 3)
((1 2) 3)

309:デフォルトの名無しさん
09/02/21 06:28:27
肝心な部分コピペし忘れとかどうなのよ、俺……orz

> `(,@x 3)
(1 2 3)

310:デフォルトの名無しさん
09/02/21 23:02:45
Luaスレがschemeネタで盛り上がってるw

311:デフォルトの名無しさん
09/02/22 00:35:49
ちょっと見てくルア

312:デフォルトの名無しさん
09/02/22 01:21:09
見てきたけど、あんまり面白い流れでも無かった。
速いなら実装を参考にしよう、とか建設的な意見が出る訳でもなく、
単にSchemeイラネ、だし。

313:デフォルトの名無しさん
09/02/22 04:20:15
括弧うぜえとか。

314:デフォルトの名無しさん
09/02/22 09:18:44
Schemeは作るの簡単とか。

315:デフォルトの名無しさん
09/02/22 09:36:45
>>312
Luaってのはどういう言語かもよく知らないんだが、
処理系は結構よくできているみたいで遅くはないよ。
URLリンク(shootout.alioth.debian.org)

316:デフォルトの名無しさん
09/02/22 14:35:16
ypsilon軍団とgauche軍団どっちが多い?

317:デフォルトの名無しさん
09/02/22 14:36:35
[gauche] 攻撃:52 素早さ:32 防御:27 命中:74 運:17 HP:258
[Ypsilon] 攻撃:88 素早さ:69 防御:92 命中:95 運:96 HP:144

gauche vs Ypsilon 戦闘開始!!
[Ypsilon]の攻撃 HIT [gauche]は154のダメージを受けた。
[gauche]の攻撃 HIT [Ypsilon]は1のダメージを受けた。
[Ypsilon]の攻撃 HIT [gauche]は173のダメージを受けた。
[Ypsilon]が[gauche]を倒しました(ラウンド数:2)。
魔法のMD5 - MD5バトル URLリンク(www.newspace21.com)




318:デフォルトの名無しさん
09/02/22 14:38:19
何という二番煎じ、お前は車輪の再発明でもしてろ

319:デフォルトの名無しさん
09/02/22 20:43:41
車輪の再発明はハッカーの大好物

320:デフォルトの名無しさん
09/02/22 21:09:19
>>315
遅くないのは知ってるけど、向こうの話題の発端がそういう話だった。

俺の場合、VCSのmonotoneで組み込まれてて知ったんだけど、
かなり評価高い言語だよね。Adobeとかも採用してるとか。

321:デフォルトの名無しさん
09/02/22 21:14:55
Lispが早いとか

322:デフォルトの名無しさん
09/02/22 22:30:29
CLでもSchemeでもいいので話題のHSPみたいに簡単にゲーム作れるソフトはありますか?

323:デフォルトの名無しさん
09/02/22 22:38:44
>>322
CL/scheme はしらんが、どこぞのメーカは
ゲーム開発ベッドで専用 Lisp 使ってなかったっけ?


324:デフォルトの名無しさん
09/02/22 22:56:50
>>322
LispやSchemeをゲーム制作に生かしている企業とかはあるみたいだけど、
誰でも分かり易いライブラリだの、特化した処理系だのはないんじゃない?
一応、SDLとかOpenGLとか使ってゲーム作るのは、大抵の処理系で出来ると思うけど。

というか、HSPが話題っていつの話だ。

325:デフォルトの名無しさん
09/02/22 23:41:31
>>323
これね。
URLリンク(en.wikipedia.org)

326:デフォルトの名無しさん
09/02/23 02:25:21
LuaとかSquirrelは遅かったらC++に書き直せばいいだけだからな

327:デフォルトの名無しさん
09/02/23 02:48:48
Lisp/Schemeも同じことができると思うんだが……。

328:デフォルトの名無しさん
09/02/23 03:01:43
書き直す際に
実装が多いのが弱点ではないかと。


329:デフォルトの名無しさん
09/02/23 03:04:34
Squirrelは書き直すのが楽そうだ

330:デフォルトの名無しさん
09/02/23 06:21:26
StalinならCより速くなることもあるんじゃなかったっけ?


331:デフォルトの名無しさん
09/02/23 09:01:55
Stalinって実際どんな感じ?

332:デフォルトの名無しさん
09/02/23 09:49:25
StalinってCを出力するんでしょ?
Cより速くなる事は無いと思うけど…
Cで「人間が」書くより速くなる事ならあるかもしれないけど

333:デフォルトの名無しさん
09/02/23 10:13:08
stalin ... それは、かつてソ連で大量虐殺をおこなった恐怖の支配者。。。
だから
非人間的な行動(コード)だろ?人間が書くCのコードより速いってことじゃ?

334:デフォルトの名無しさん
09/02/23 12:45:31
Stalinは、人間がかくCコードよりかなり早い場合も多い。
ただし、継続が使えないとか制限が多いし、コンパイル時間がめっちゃかかる。

>>332
> Cより速くなる事は無いと思うけど…
> Cで「人間が」書くより速くなる事ならあるかもしれないけど
こんなこというやつ初めて見た。

335:デフォルトの名無しさん
09/02/23 13:00:30
そうか?理論値と実情を別に語るのは良くあると思うが。

336:デフォルトの名無しさん
09/02/23 14:49:32
だって、人間が書いたものではないCを含めて 「C言語より速い」
を語るなら、それって実質的にCコンパイラの最適化の差に帰着するじゃん。

コンパイラによってはCから (ほぼ)最小のアセンブリを生成できることだってできるし、
そうすると何をもって「Cのソース」とするのかって話になって、
「Cのソースを吐くんだからCより速いはずがない」 っていう議論は空虚じゃない?

まぁ言い出しておいてアレだけどスレチだな。すまん

337:デフォルトの名無しさん
09/02/23 15:49:25
Stalinの話は定期的にでてくるけど、流れとしては・・・

「同じ問題を解くのに俺様の書いたCよりXXにあるStalinのコードの方が速かった!」
「でも俺様のCのコードがヘボいことはありえない!そんなことは考えられない!」<- これが間違い
「Stalinはどんな魔法を使ってるんだ!スゲーよStalin!」

一部で盛り上がるけどスルーする人も多い。
同じ速度を出すのにStalinを使った方が簡潔に短時間で書けるというのはあると思う。
だからあれほどコンパイル時間がかかってもユーザーは気にしないんじゃないかな。



338:デフォルトの名無しさん
09/02/23 17:31:09
まぁStalinはある種の一発モノだからな。
研究とか勉強の材料としてはすごいけど、プロダクションでは使えないから
盛り上がるのは一部にとどまる。

俺は盛り上がった派だけどw
最適化の解説の論文は勉強になった

339:デフォルトの名無しさん
09/02/23 21:26:10
schemeのマクロを使って 
見た目から括弧を無くしていくことって出来ますか? 
例えば括弧のない1 + 2を3と評価するとか 
for リスト do 処理 done 
みたいな構文がmapの意味で動くようにしてみたい 


340:デフォルトの名無しさん
09/02/23 21:34:29
>>339
まえにどっかでみたことがある。srfiなんとか だったと思う。

341:デフォルトの名無しさん
09/02/24 01:17:57
SRFI 49のI-expressionsは、インデントで構文木を表す表記法であって、
マクロは関係なかった気がするんだけど、違ったっけ?

342:デフォルトの名無しさん
09/02/24 06:02:54
SRFI 49: Indentation-sensitive syntax
URLリンク(srfi.schemers.org)

最高にキモい Lisp コードを書いてみよう with 100 行リーダーマクロ
URLリンク(lispuser.net)

343:デフォルトの名無しさん
09/02/24 12:45:19
つ Standard Lispの記号モード

344:デフォルトの名無しさん
09/02/24 15:44:53
>>339
「schemeのマクロを使って」も
マクロ使用を囲う括弧と、マクロ名さえあれば中置記法もできます。
ただしこの3つをなくするのはRnRSではできない。
処理系によってはリーダマクロをサポートしているのでそれを使うと可。

345:デフォルトの名無しさん
09/02/24 20:11:25
なるほど、やはり出来ないのかー
リーダーマクロ、存在だけは知ってましたが
コンパクトでかっこいいSchemeで出来たらなぁって思いまして

昨日考えてたんですが、
Schemeには演算子の優先順位がないのが原因でしょうね
もし優先順位がつけば、括弧省略出来る
それはそれで、F#やらHaskellやらでみかける
パイプライン演算子みたいなのが定義出来たり、と夢が膨らむが
言葉に表せない大切な物が犠牲になってしまう気がします

>マクロ使用を囲う括弧と、マクロ名さえあれば中置記法もできます。
これ非常に興味あるんですが、どういうことでしょうか?

適当に試してはみたんですが、わかりません
(define-syntax plus
(syntax-rules ()
; ((x _ y) (+ x y))))
; ((x (_) y) (+ x y))))
; (((x _ y))(+ x y))))

Gaucheの拡張で優先順位を計算して括弧を省略ってページなら見つけましたが
そういった話でしょうか?


346:デフォルトの名無しさん
09/02/24 20:42:16
こういうことじゃないの
(define-syntax calc
(syntax-rules (+ -)
((_ a + . rest) (+ a (calc . rest)))
((_ a - . rest) (- a (calc . rest)))
((_ a) a)
)
)
> (calc 1 + 10 - 5)
5

347:デフォルトの名無しさん
09/02/24 20:44:04
5かよ

348:デフォルトの名無しさん
09/02/24 20:44:55
> Schemeには演算子の優先順位がないのが原因でしょうね
> >マクロ使用を囲う括弧と、マクロ名さえあれば中置記法もできます。
> これ非常に興味あるんですが、どういうことでしょうか?
そうゆう reader を作ればいいじゃね?
作るだけだったら誰でも作れると思うし…


349:デフォルトの名無しさん
09/02/24 20:45:29
>>345
俺は344じゃないけど、344の言ってることは違う。

344が言ってるのは、「一番その側のカッコがあれば」 ということ。
いちばん外側のカッコは、どう頑張ってもRnRSでは省略不可能。
しかし、一番外側のカッコとマクロ名を許容すれば、
そのマクロの引数を全部自力で解釈すれば、そういうことは可能ということ。

文字通り、言語をもう1つ作るようなもんだけど。



350:デフォルトの名無しさん
09/02/24 20:46:54
× 一番その側
○ 一番外側

351:デフォルトの名無しさん
09/02/24 21:16:51
>>344
これ面白いなぁ。
引き算は
(calc 1 - 2 - 3)
こう展開されてしまうから
(- 1 (- 2 3))
正しい値にならないね
けど、面白いからちょっと考えてみます

>>349
なるほど、勉強になります。
「マクロ使用を囲う括弧と、マクロ名さえあれば」
というのは、344氏の例でいけば、
一番外側の()とマクロ名であるcalcっていう意味なわけですね
そして、それより内側であれば、がんばり次第で自由自在だ、と。

352:デフォルトの名無しさん
09/02/24 21:51:26
('A`)y-~

353:デフォルトの名無しさん
09/02/25 02:20:27
そもそも、何で括弧なくしたいんだ?
知的好奇心満たしたいだけなら何も言わんが。

354:デフォルトの名無しさん
09/02/25 07:19:11
Lisp Scheme初心者です。マグロウヒルの「プログラムの構造と実行」をテキストに
Schemeを勉強しようと思っています。
そこで皆様のアドバイスをお願いしたいのですが、どのScheme処理系がお勧めでしょうか?
あまりにもたくさんありすぎて判断できません。
OSはWindows XPです。よろしくお願いします。

355:デフォルトの名無しさん
09/02/25 08:44:21
>>354
windows上で勉強目的なら統合環境のほうが楽だろうしPLT schemeで良いんじゃないかな。
さもないなら、linux上でemacs+gauche(日本語の本があるから)とかでも良いように思うん
だけどね。

356:デフォルトの名無しさん
09/02/25 15:03:43
>>338
stalinがダメなら
記述力と速度を同時に達成できるのって
ocamleぐらい?

357:デフォルトの名無しさん
09/02/25 16:11:06
GCの停止時間がなくて
記述力も同時に達成できるのはC++しかないんだぜ

358:デフォルトの名無しさん
09/02/25 16:19:51
確か2月前半ぐらいに
comp.lang.lisp
でreadable なlisp -> C 変換の話がでてたはずなのに見つからない


359:デフォルトの名無しさん
09/02/25 16:55:36
C++はOOPの振りをした関数型言語だからな

360:デフォルトの名無しさん
09/02/25 17:34:58
>>359
テンプレートで遊ぶ分にはそうだけどな

361:デフォルトの名無しさん
09/02/25 18:16:37
OOPは言語関係ねーす

362:デフォルトの名無しさん
09/02/25 18:20:23
c++でoneceonlyマクロって書けるんだろうか
前にoneconleyできない関係で何度も代入評価されてる
「そんなエラー絶対みつかんないだろう」ってエラーがboost関係で報告されてた

363:デフォルトの名無しさん
09/02/25 19:39:11
>>353
どっちかっていうと実用的な理由
 ・タイプ量を減らしたい
 ・括弧がネストすると、対応が激しくおいづらい

364:デフォルトの名無しさん
09/02/25 19:48:59
emacsを使えばそんなこと屁でもないな
むしろ()がある方がタイプ量が減るし、移動が楽ってぐらいになる
逆にエディタの支援が無いとなるとなるほどそれは確かに致命的だ

365:デフォルトの名無しさん
09/02/25 20:09:55
エディタの機能でどうのこうのっていうのは
言語の話とは別のような・・
俺もemacsは使ってるが

>()があるほうがタイプ量が減る
それはない
letよりlet1のほうが読みやすいし打ちやすい

366:デフォルトの名無しさん
09/02/25 20:26:16
>>363
実用的な理由で括弧を消すのはないだろー。
前者の理由なら、そのために高階関数やマクロがある。
後者の理由なら、そのためにエディタの支援機能がある。
というか、インデントで対応を追うのが普通。

まあ、実際にやってみて、構文を増やす度に複雑化する、
仕様やリーダーマクロのメンテにうんざりしてみれば、
その辺良く分かるとは思うけど。

367:デフォルトの名無しさん
09/02/25 20:34:54
実用ってことはコードを編集することを含むだろう?
ならエディタは関係あるじゃないか

368:デフォルトの名無しさん
09/02/25 20:52:06
emacsの括弧うんぬんはいじる方の腕しだいで楽になる。

369:デフォルトの名無しさん
09/02/25 20:56:54
emacs はこのへんを組み込んでるかどうかでも全然ちがうよ。
1. insert-parentheses を使ってるかどうか
2. show-paren-mode を使ってるかどうか
3. transient-mark-mode を使ってるかどうか

370:デフォルトの名無しさん
09/02/25 20:57:00
>>365
プログラムのコードのタイプ量は減るだろうけど、
編集作業全体のタイプ量は驚きの増加量、って感じになる気がするよ。
S式単位での編集を使わないと、移動に掛かる手間が段違い。

371:デフォルトの名無しさん
09/02/25 21:03:44
emacs userは1匹見ると10匹いると思え

372:デフォルトの名無しさん
09/02/25 21:06:15
>>371
ごきぶりみたいにいうな にがわらひ
370みたいなべてらんもいるけど、C-F C-B C-N C-Pもままならずマウスな初心者も
いるから。
viでもlispモードは普通にあるよ。

373:デフォルトの名無しさん
09/02/25 21:36:25
>>371
むしろ1匹しかいない絶滅危惧種扱いの所が多いよ。

374:デフォルトの名無しさん
09/02/25 22:18:10
google trendsをみても検索数の指数は減ってるけど、多い地域はアカデミックなところが
多いね。日本も亜米利加もね。

375:デフォルトの名無しさん
09/02/25 23:15:14
俺ベテランじゃなくて異端。
viper-modeで、viとEmacs両方のキーバインドを同程度に使う変態。

376:デフォルトの名無しさん
09/02/25 23:19:42
vipperかお?

377:デフォルトの名無しさん
09/02/25 23:22:13
お じゃない。

378:デフォルトの名無しさん
09/02/25 23:27:08
>>375
viper-modeかぁ。15年以上起動したことがない。笑い

379:デフォルトの名無しさん
09/02/25 23:31:02
>>375
   ___l___   /、`二//-‐''"´::l|::l       l! ';!u ';/:::l ', ';::::::l ';:::::i:::::
   ノ l Jヽ   レ/::/ /:イ:\/l:l l::l   u   !. l / ';:::l ', ';:::::l. ';::::l:::::
    ノヌ     レ  /:l l:::::lヽ|l l:l し      !/  ';:l,、-‐、::::l ';::::l::::
    / ヽ、_      /::l l:::::l  l\l      ヽ-'  / ';!-ー 、';::ト、';::::l:::
   ム ヒ       /::::l/l::::lニ‐-、``        / /;;;;;;;;;;;;;ヽ!   i::::l:::
   月 ヒ      /i::/  l::l;;;;;ヽ \             i;;;;;;;;;;;;;;;;;;;l   l::l:::
   ノ l ヽヽノ    /:::l/:l /;;l:!;;;;;;;;;',               ';;;;;;;;;;;;;;;;;ノ    l:l::
      ̄ ̄    /::::;ィ::l. l;;;;!;;;;;;;;;;;l            `‐--‐'´.....:::::::::!l
   __|_ ヽヽ   /イ//l::l ヽ、;;;;;;;ノ....      し   :::::::::::::::::::::ヽ /!リ l
    | ー      /::::l';!::::::::::::::::::::  u               ', i ノ l
    | ヽー     /イ';::l          ’         し u.  i l  l
     |       /';:';:!,.イ   し    入               l l U
     |      /,、-'´/ し      /  ヽ、   u    し ,' ,'  l
     |        /l し     _,.ノ     `フ"       ,' ,'  ,ィ::/:
     |       /::::::ヽ       ヽ    /     し ,' ,' / l::
     |      /::::::::::::`‐、 し      ',  /    u   ,、-'´  l,、-
     |      ``‐-、._::::::::::` ‐ 、     ',/       , -'´`'´ ,-'´
     |      _,、-‐'"´';:::::::::イ:l';:::` ‐ 、._____,、-‐'"´  u /
   | | | |    \ l::/ l::::::/リ ';:::::lリ:::::l';:::l l:l:::::l\  u /
   | | | |

380:デフォルトの名無しさん
09/02/25 23:56:13
>>375
viperモードたまに使うけど、完全に終了させる方法教えて下さい。
viper-go-away しても別のファイル開いたらまたviperになってて、
仕方ないからemacs毎再起動してる。

381:デフォルトの名無しさん
09/02/26 02:13:24
>>380
せっかくなので、ソースコードを読んで原因を探ってきました。

viper-go-awayを呼ぶと、viper.elのviper-remove-hooksで、
仕掛けていた各メジャーモードのフックを解除していくのですが、
コードを見ればお分かりの通り、とても素敵なバグがありまして、
find-file-hooksとかは完全スルーです。

なので、自分でコードを修正するか、本家にフィードバックするか、
俺のようにVIPER常駐野郎になるか選んでください。

382:デフォルトの名無しさん
09/02/26 04:40:02
と思ったんだけど、追加で調べていったら、
デフォルトのメジャーモードを元に戻さないってバグもあって、
これが本筋っぽい。CVS最新版では修正されてる。
↓を.emacsに追加でひとつ。

(defadvice viper-go-away (after revert-default-major-mode activate)
(setq default-major-mode 'fundamental-mode))

383:デフォルトの名無しさん
09/02/26 08:37:29
maximaの細かいbugが未だに放置なのは
common lispの問題なんだろうか
schemeで書かれてるならbugは少なくなるんだろうか

384:デフォルトの名無しさん
09/02/26 11:34:14
妄想はそのくらいに

385:デフォルトの名無しさん
09/02/26 19:45:52
もともと"Common Lisp"じゃないものをGCLに、そして"Common Lisp"に書き直したからじゃない?
最初から"Common Lisp"で書かれていたら違っていたかも
Maxima使ってないからよくわからないけど

386:デフォルトの名無しさん
09/02/26 23:21:25
質問。この2つに違いってありますか?

(define (f x)
(define g 10)
(+ x g))

(define (g x)
(let ((h 10))
(+ x h)))

387:デフォルトの名無しさん
09/02/26 23:29:49
5.2.2 internal definitionsに変らないと書いてある。

> A <body> containing internal definitions can always be converted
> into acompletely equivalent letrec expression.

388:デフォルトの名無しさん
09/02/26 23:45:33
(define (g x)
 (letrec ((h 10))
  (+ x h)))
となら同じ、が正しいのでは?
letとletrecは違う
この例はたまたまコンビネータ式が束縛されているに過ぎない
(正確には式が束縛されているわけではないけど)

389:デフォルトの名無しさん
09/02/26 23:53:51
質問の意図によるだろうけど
最終的な機械語に落とす段階では同じコードになる

390:388
09/02/26 23:57:23
とはいったものの、束縛する式が1つならSchemeレベルではletとletrecは等価ですね

391:デフォルトの名無しさん
09/02/27 00:01:31
>>387
ありがとうございます
自分の知らない、
何か違う意味があるんだろうと思って質問したんですが
letrecと同じ意味なんですね

392:デフォルトの名無しさん
09/02/27 00:01:49
おっちょこちょいですね。

393:デフォルトの名無しさん
09/02/27 00:04:11
>>391
>>386の例ではletで問題ない。

394:デフォルトの名無しさん
09/02/27 00:11:24
>>393
了解です。Schemeってシンプルですね。ありがとうございます

395:デフォルトの名無しさん
09/02/27 00:20:22
>>387
編集ミスった。
acompletely→a completely

否定のa-に見えてしまう すまん

396:デフォルトの名無しさん
09/02/27 10:00:52
さしずめ「うは宇宙のう」

397:デフォルトの名無しさん
09/02/27 21:31:01
>>382
遅くなったけどありがとう。これでviperモードと仲良く暮らせそうです。

398:デフォルトの名無しさん
09/02/28 08:07:26


399:デフォルトの名無しさん
09/02/28 09:35:38
399

400:デフォルトの名無しさん
09/02/28 09:36:03
400

401:デフォルトの名無しさん
09/02/28 18:05:35
shibuya.lisp ストリーミング中!
って今ごろ気付いたorz


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch