【入門】Common Lisp その4【質問よろず】at TECH
【入門】Common Lisp その4【質問よろず】 - 暇つぶし2ch2:デフォルトの名無しさん
08/01/27 11:53:20
((お勧めの Common Lisp 処理系)
(SBCL: URLリンク(sbcl.sourceforge.net)
:プラットフォーム UNIX, Linux, Mac, Windows(移植中)
:開発 活発
:日本語 使える(UCS4, UTF8, EUC)
:特徴 一番お勧めのコンパイラ。)

(CLISP: URLリンク(clisp.cons.org)
:プラットフォーム UNIX, Linux, Mac, Windows
:開発 そこそこ活発
:日本語 使える
:特徴 バーチャルマシン。遅いがフットプリントが小さい。)

(CMUCL: URLリンク(www.cons.org)
:プラットフォーム UNIX, Linux, Mac
:開発 そこそこ活発
:日本語 使えない(回避法有り)
:特徴 高速コンパイラ。SBCL の元になった。)

(OpenMCL: URLリンク(openmcl.clozure.com)
:プラットフォーム PPC-Linux, Mac, x86-Linux と FreeBSD に移植中
:開発 そこそこ活発
:日本語 使えない (pre ver 1.1なら多少扱える。)
:特徴 元々商用のコンパイラ。ネイティブスレッドが使える。))




3:デフォルトの名無しさん
08/01/27 11:54:07
((商用CL) ;;誰か補間よろ
(Allegro: URLリンク(jp.franz.com)
:プラットフォーム Windows ,Mac OS X , Freeを含む各種UNIX
:開発 ほとんど本陣
:日本語 使える(内部UTF16,外部 プラットフォーム毎)
:特徴 お高いがもっとも頼れる。申し込みが必要だがFree Express Editionあり )
(LispWorkss: URLリンク(www.lispworks.com)
:プラットフォーム Windows ,Mac OS X
:開発 半年にいっぺんくらいアップデート
:日本語 使えるみたい(完全に対応しているかはちとわかりかねまする)
:特徴 IDEベースです、フリー版はconsセルの上限が来るとダイアログがでてしまいます、SDLとかで遊ぶとすぐに引っかかります ))

((その他)
(ABCL: URLリンク(armedbear-j.sourceforge.net)
:特徴 JavaVM 上で動く。JavaVM のバイトコードを生成。)

(GCL: URLリンク(www.gnu.org)
:特徴 日本発 Kyoto Common Lisp の直系。)

(ECL: URLリンク(ecls.sourceforge.net)
:特徴 Lisp->C コンパイラ。組み込み可能らしい。こちらもKCLの系譜))


4:デフォルトの名無しさん
08/01/27 11:55:05
ANSI Commn Lisp 仕様関係
URLリンク(www.lisp.org)
URLリンク(www.cs.cmu.edu)
URLリンク(lispdoc.com)

日本語のチュートリアル
URLリンク(web.sfc.keio.ac.jp)
URLリンク(www.h7.dion.ne.jp)
URLリンク(www.geocities.jp)
URLリンク(home.soka.ac.jp)
URLリンク(www.haun.org)
URLリンク(wisdom.sakura.ne.jp)
URLリンク(www-kasm.nii.ac.jp)

5:デフォルトの名無しさん
08/01/27 11:55:48
進んだ話題が欲しい人に...
(和文)
URLリンク(www.geocities.co.jp)
URLリンク(www.geocities.co.jp)
URLリンク(lispuser.net)<)
URLリンク(www.cl-user.net)<)
URLリンク(planet.lisp.org)
URLリンク(groups.google.co.jp)
URLリンク(www.cliki.net)
URLリンク(cl-cookbook.sourceforge.net)
URLリンク(www.gigamonkeys.com)
( URLリンク(www.apress.com) よりpdf版が入手可能)
URLリンク(www.psg.com)
URLリンク(www.cs.cmu.edu)

その他の情報
URLリンク(ja.wikipedia.org)

6:デフォルトの名無しさん
08/01/27 11:56:09
((おまけの処理系
(POPLOG: URLリンク(www.cs.bham.ac.uk)
Lisp, Prolog, ML のコンパイラ)
(WCL: URLリンク(wcl.kontiki.com)
Shared Library として使える Lisp)
(Movitz: URLリンク(common-lisp.net)
フルスクラッチの Lisp OS)
(CADR LispM: URLリンク(www.heeltoe.com)
MIT で使われていた LispM のソースを公開したもの))

((その他のリンク
(Meme channels: URLリンク(meme.b9.com)
Lisp の IRC Log)
(Paul Graham の ANSI Common Lisp:
URLリンク(www.pearsoned.co.jp)
Common Lisp の 参考書を探しているならこれ一択))


7:デフォルトの名無しさん
08/01/27 12:22:06
>>1

8:デフォルトの名無しさん
08/01/27 14:00:58
read-lineするとさ
"文字列" ってかえってくるやん?
これって形式的には何になるんですか?

変数にうまくはいってこないんだよね

9:デフォルトの名無しさん
08/01/27 17:11:58
進んだ情報に追加
On Lisp邦訳 web版
URLリンク(user.ecc.u-tokyo.ac.jp)

10:デフォルトの名無しさん
08/01/27 17:13:02
ちょっと質問から「うまくはいってこない」がイメージできんので、コードを見せてくれませんか。

11:デフォルトの名無しさん
08/01/27 18:47:57
テンプレ全部書いたら連続投稿規制にひっかかって前スレで案内できませんでしたorz


12:デフォルトの名無しさん
08/01/27 18:59:33
商用CL
URLリンク(jp.franz.com)
free downloadから登録して使えるらしい
URLリンク(www.lispworks.com)
IDEがついているらしい

13:デフォルトの名無しさん
08/01/27 19:04:25
>>12
しくしく、それ一応テンプレにいれてあるのでございます、ショボーン

14:デフォルトの名無しさん
08/01/27 21:14:16
tspl入ってないな。

15:デフォルトの名無しさん
08/01/27 23:01:10
>>1
なんか重いな

16:デフォルトの名無しさん
08/01/30 05:45:39
Aという親を頂点に、左下にBいう子、右下にCという子がいるだけの
簡単な木の関係がある時、これを(A B C)と書くのか、(A(B C))と
書くのか、どちらでしょうか。

17:デフォルトの名無しさん
08/01/30 06:11:51
>>16
そのリストをどう利用するのかにもよるけど
(A B C)はお勧めできない

どっかにヒープソートとかのソースが落ちてたら
そういうソースを参考にするといい


18:デフォルトの名無しさん
08/01/30 16:39:33
GCLを使っていて、
メモリの使用状況(どのくらいメモリを食っているか)を確認したいのですが、
room関数の見方がいまいちよくわかりません。

1134/1259 30.3% CONS RATIO COMPLEX STRUCTURE
25/28 8.4% FIXNUM SHORT-FLOAT CHARACTER RANDOM-STATE READTABLE SPICE
93/404 82.9% SYMBOL STREAM
1/2 20.5% PACKAGE
96/373 46.7% ARRAY HASH-TABLE VECTOR BIT-VECTOR PATHNAME CCLOSURE CLOSURE
27/32 66.6% STRING
294/325 1.8% CFUN BIGNUM LONG-FLOAT
11/115 84.1% SFUN GFUN VFUN AFUN CFDATA

104/512 contiguous (459 blocks)
13107 hole
5242 0.0% relocatable

1681 pages for cells
20134 total pages
101431 pages available
9507 pages in heap but not gc'd + pages needed for gc marking
131072 maximum pages

(room)を実行すると、このように出るのですが、
どの部分を見れば、メモリの使用状況が分かるのでしょうか?

19:デフォルトの名無しさん
08/01/30 17:36:31
>>18
さてあなたのPCのメモリはいくつでしょう

20:デフォルトの名無しさん
08/01/30 19:57:05
>>19
roomで出てくる数値は、PCのメモリとは関係ないみたいなんです。
2GのPCでやっても、1GのPCでやっても同じ結果が出てきます。

GCLを起動した直後のroomの数値と、
メモリを大量に食う関数を実行した後のroomの数値を比べて、
どこを見れば、メモリの使用量がわかるのでしょうか?


pageという単位が、2,048バイトなのはわかったんです。
pages for cellsのとこを比べればいいのかな?

21:デフォルトの名無しさん
08/01/31 18:31:15
URLリンク(journal.mycom.co.jp)

22:デフォルトの名無しさん
08/02/04 19:54:37
>>1


疑問なんだが、パワーズって誰だ???

23:デフォルトの名無しさん
08/02/05 00:01:31
>>22
前スレのコピペなんで俺に聞かないでくれ。

>>前スレの1の中の人解説よろ


24:デフォルトの名無しさん
08/02/06 22:53:08
今日会見してたよ

25:デフォルトの名無しさん
08/02/07 19:24:21
すいません。lispのマクロは最強でほかの言語では真似できないそうですが、
具体的にlispマクロ最強を実感できる例を教えていただけないでしょうか。

26:デフォルトの名無しさん
08/02/07 20:16:58
最強とか実感とか、痛い言葉が並ぶなあ。
だと君に吹き込んだ奴にきくのが一番じゃないの。

27:デフォルトの名無しさん
08/02/07 20:18:03
失敬。
だと → 最強だと

28:デフォルトの名無しさん
08/02/07 20:20:18
「Lisp マクロ」で検索して出てくるコードの大半が、
じゅうぶん「ほかの言語では真似できない」ことをやってるから、それを眺めるといいよ。

29:デフォルトの名無しさん
08/02/07 20:26:53
私に吹き込んだ奴も本でそう書いてあるのを読んだっていうだけで
よくわかってないみたいです。



30:デフォルトの名無しさん
08/02/07 20:29:18
>>28
おっとすいません。リロードしてませんでした。
検索してみます。


31:デフォルトの名無しさん
08/02/08 15:42:22
結局パワーズってだれさ

32:デフォルトの名無しさん
08/02/08 15:59:42
オースティン

33:デフォルトの名無しさん
08/02/08 22:44:34
2000万


34:デフォルトの名無しさん
08/02/09 00:23:56
グレートチキン

35:デフォルトの名無しさん
08/02/09 15:06:23
おむつ

36:デフォルトの名無しさん
08/02/15 10:45:49
やべぇええSchemeに浮気しそう...
継続を明示的に扱えるCommonLisp実装系ってないのですか?
(ひょっとして明示的に扱ったらANSI仕様違反?)
マクロの実装はOn Lispに書いてあったけど,色々不便だからなぁ

37:デフォルトの名無しさん
08/02/16 09:54:17
CommonLispで面倒ならScheme使えばいいんでないの?
cl-contとか色々あるけど、多分36は「色々不便だからなぁ」っていうと思うよ。

38:デフォルトの名無しさん
08/02/16 10:22:25
新スレに成ってから壊れ方があまいなぁ
離脱者多数?

39:デフォルトの名無しさん
08/02/16 17:28:10
最近だと Scheme から入る人が多いのに、珍しいね。>>36
一旦乗り替えてみればいいじゃない。Scheme もやっといたほうがいいと思うよ。
別にどれか一個を選ばなきゃいけないってわけでもないし。

40:デフォルトの名無しさん
08/02/16 19:32:37
継続なんて飾りだよ。
男は黙って compile & disassemble、速さこそ正義。


41:デフォルトの名無しさん
08/02/16 20:59:29
速さがそれほど重要じゃない局面ってのもあるからねぇ

42:デフォルトの名無しさん
08/02/16 22:48:29
そして、継続がそれほど重要な局面ってのは少ないからなぁ

43:デフォルトの名無しさん
08/02/16 23:12:43
ファーストクラスじゃなくてもフロー制御くらいにゃ使えるしな。
Javaの世界でも継続~ってなフレームワークがあるくらいだし。
まぁ、一度はSchemeをやっとくべきだと思う。

44:デフォルトの名無しさん
08/02/16 23:18:50
CL をやっていて Scheme を知らない人は殆ど居ないんじゃないかな
その逆はかなり多そうだけど…

45:デフォルトの名無しさん
08/02/16 23:38:22
>>44
そうだね、漏れもそう思う。
全部が全部、Gaucheの影響とは思わないけど、
そういう点では、Gaucheって偉大だなと思う。コミュニティも活発だし。
まあ偉大な大黒柱があってのこととも思うけど。
CL界隈ってコミュニティっていったらxyzzy方面くらい?

46:デフォルトの名無しさん
08/02/16 23:47:50
とりあえず日本のCommon Lispコミュニティ
活性化のためにもIRCチャンネルでも作らないか?

47:デフォルトの名無しさん
08/02/16 23:57:34
チャットとなると
貴様らはすぐにプログラミングとは別の話題ばかりで盛り上がる
そんなことよりcommonlispで何が出来るんだ?

48:デフォルトの名無しさん
08/02/17 00:22:40
>>46
私はもうジジイなのでメーリングリストとか時間差をカバーできるのがいいなぁ。リアルタイムはキツイ。
>>47
とりあえず私の必要とするプログラミングのタスク一般、数値計算、データ分類は普通にできてるね。
でも煽るならもっと最近流行の言語で煽ったほうが喰いつきがいいと思うよ。

49:デフォルトの名無しさん
08/02/17 01:00:02
>>42
そしてschemeが遅いわけでもない
Cより速い実装ってかなったっけ?

50:デフォルトの名無しさん
08/02/17 01:07:25
>>49
stalin

51:デフォルトの名無しさん
08/02/17 01:12:41
stalinとか?俺ぁ別にSchemeが遅いとか言う気もないけど。


52:デフォルトの名無しさん
08/02/17 02:03:35
これからLisp始めようとしてる自分にとってチャットはwktk

53:デフォルトの名無しさん
08/02/17 10:13:36
#scheme-jpは過疎ってるぞ

54:デフォルトの名無しさん
08/02/17 11:38:36
Lingrとかどうなんだろうね。
一応過去ログも追えるみたいだけど。

55:デフォルトの名無しさん
08/02/17 16:22:13
>>48
流行ってないのか?
流行って?
オッパイソンの事?

56:デフォルトの名無しさん
08/02/19 16:02:52
入力されたS式をXMLに変換するときって
どんな風に書けばいいのですか?

57:デフォルトの名無しさん
08/02/19 19:57:33
(S式をXMLに変換 入力されたS式)

58:デフォルトの名無しさん
08/02/20 12:06:00
Javaで遅延評価ってどういうふうに書けますか?

59:デフォルトの名無しさん
08/02/20 12:41:50
delayとforceを作ればおk

クロージャから外の環境へのアクセスにfinal縛りがあるから、
ちょっと不自由だけど。

60:デフォルトの名無しさん
08/02/23 08:24:43
lispってWin32API使えるのですか?

61:デフォルトの名無しさん
08/02/23 09:32:27
>>60
FFIでDLL経由ならいけると思うよ

62:デフォルトの名無しさん
08/02/23 21:02:21
LISPでGUI使ったWindowsアプリケーションなんて作れるのか??

63:デフォルトの名無しさん
08/02/23 21:06:33
>>62
もちろんできるよ

64:62
08/02/23 21:14:10
え~~~
うーそーだー

どこにもやり方書いてなかったぞ~~~

65:デフォルトの名無しさん
08/02/23 21:36:02
Tk使えるだろ

66:デフォルトの名無しさん
08/02/24 00:55:41
>>62
もっと簡単にやりたければLWかACL買えばいい。
それ以外ならLTKかSDLでやる。


67:デフォルトの名無しさん
08/02/25 11:49:12
Lispってハードウェアよりの処理はできるの?

68:デフォルトの名無しさん
08/02/25 17:00:13
>>67
FFIでラッパーライブラリつくれば何でもできる

69:デフォルトの名無しさん
08/02/26 00:34:49
>68
そりは実質、ハードウェアよりの処理はほとんどの場合に
C(/C++)でやってるのではw?

まあ、そういう低レベルの処理は高級アセンブラであるところの
Cで行うのが正解だけど。

70:デフォルトの名無しさん
08/02/26 00:47:36
Lispでコードジェネレータ書いて生成したコードを直接コール出来るようにしれ

71:デフォルトの名無しさん
08/02/26 07:31:03
Movitz か MonaOSか、ならできるんじゃね?
おれはヘタレだから試したことないけど…

72:デフォルトの名無しさん
08/02/26 22:08:46
>>71
MovitzはしらんがMonaOSは無理じゃね?
だってシステムコールとしてScheme使ってるわけじゃないだろ
ただシェルがSchemeというだけでしょ.

やっぱりLispのVM上でOSを書かないとだめじゃないか?

73:デフォルトの名無しさん
08/02/26 23:15:37
言語と実装を混同してるんじゃないか?
システムコールをサポートしたScheme処理系があれば同じ事だろ。
Cだってシステムコールのサポートは言語じゃなくて実装の領分じゃん。

74:デフォルトの名無しさん
08/02/26 23:38:42
システムコール(レベル)が「ハードウェアよりの処理」か。
人によって感じ方が違うもんだな。

俺の感覚では「ハードウェアよりの処理」とはDLLやデバイス
ドライバでハードウェアを直叩きする事だとつい考えてしまう。
で、Lispでそんな物を書いた例と言うのはあるのだろうか?

75:デフォルトの名無しさん
08/02/26 23:43:12
>>74
ガーベージコレクタで処理が中断されることがある言語で、
タイミングにシビアなハードを直接制御するのは一般には
難しいだろ。

76:デフォルトの名無しさん
08/02/26 23:50:16
ある。Movits とか組み込み用途か、Scheme なら URLリンク(home.earthlink.net) とか。

「~なの?」「~だめじゃん」とかではじまって解答されたらそこでおわりって質問多いよね。
まぁ荒しの一種なんだろうけどさ…。

77:デフォルトの名無しさん
08/02/27 00:12:07
今時のOS上でハードウェアをたたきたいとか言うのはデバイスドライバも書けない能無しでしかないと思う。
それ以外の状況でLispと言う選択肢が有ることはもっと異例だしな。

78:デフォルトの名無しさん
08/02/27 01:17:12
「ハードウェアよりの処理」をしたいあるいはハードウェアを直叩きする
処理(DLL、デバドラ等)をある言語で記述したいと言う話とある言語で
記述したアプリケーションのレベルからハードウェアを直叩きしたい
と言う話は全然別問題だと思うが。

実際Cではアプリやらデバイスドライバやらもろもろ書かれているわけだし。
Lispがそういう(低レベル)処理に向いているとはあまり思わないけど。

79:デフォルトの名無しさん
08/02/27 01:57:33
ハードウェアを直接意識しないで済むように、
俺たちは高級言語を使ってるんじゃなかったのか?

下の方を触りたいなら、用途に適した言語使えばええがな(´・ω・`)

80:デフォルトの名無しさん
08/02/27 08:41:18
「Lispではデバドラが書けないからLispはクソ」って
言いたいだけちゃうんか? な人が湧いたと聞いてry

81:デフォルトの名無しさん
08/02/27 10:50:57
Lispでデバドラは無いわw

82:デフォルトの名無しさん
08/02/27 11:01:21
SYMBOLICS とか LMI とかのマシンのデバドラって何で書いてあったんだろう?


83:デフォルトの名無しさん
08/02/27 13:54:20
Lispでデバドラはかけるね

84:デフォルトの名無しさん
08/02/27 13:55:21
>>83
マクロ使えばなw

85:デフォルトの名無しさん
08/02/27 15:14:17
マルチスレッド処理を可能なLisp処理系ってありますか?

86:デフォルトの名無しさん
08/02/27 15:30:30
>>85
あります
たとえばLispでJavaを実装すればマルチスレッデできます


87:デフォルトの名無しさん
08/02/27 16:17:08
>>86
かなり無理があると思うけど・・・。
何か自分の質問が間違っている気がしてきた。

88:デフォルトの名無しさん
08/02/27 17:09:31
>85
商用のLisp処理系なら大抵できると思う。
AllegroとかCormanとか。

Freeの処理系は良く知らないけど。

89:デフォルトの名無しさん
08/02/27 17:10:32
Lispはマクロを使って少ないコードでプログラムが作れます
On Lisp読んだ?
あそこに少ないコードで言語実装する例が示されている

JavaでLispを実装するのは有名な話だね
LispでもJava実装簡単モーマンタイです鯛

90:デフォルトの名無しさん
08/02/27 17:16:16
>89
でも>85は「マルチスレッド処理可能なLisp処理系」が欲しいんだろ?
例え中身はLispで実装されてるとしても
「マルチスレッド処理可能なJava処理系」が欲しいんじゃなくて。

自分で「マルチスレッドに対応してないLisp処理系」を使って
「マルチスレッドに対応しているLisp処理系」を実装しろってか?
それはそれで偉い大変な話のような。

91:デフォルトの名無しさん
08/02/27 18:23:25
>>85
最近調べたけど、大抵の処理系には付いてた。
対応してない処理系でも、user-levelなスレッドの実装もあるみたいだから、
Common Lispな処理系ならそういうのを使えると思う。

92:85
08/02/27 18:26:42
>>91
あくまでもユーザーレベルなんですね。
xyzzyを使っているのでそれで調べてみます。
ありがとうございます。

93:デフォルトの名無しさん
08/02/27 18:33:54
>>92
何でそういう話になるんだ。ちゃんと読んでくれ。

例えば、SBCL辺りはネイティブスレッドだよ。
ただ、pthreadをベースにしているようなので、
Windowsではまだ対応してないようだ。
xyzzyってことは、Windowsユーザでしょ?

94:デフォルトの名無しさん
08/02/27 20:00:13
OpenMCL(Clozure CL) もネイティブスレッドを使えるよ
ネイティブスレッドを使いたいなら SBCL か OpenMCL しかない

95:デフォルトの名無しさん
08/02/27 20:47:08
ECL とか SCL も忘れないでやってください… > ネイティブスレッドサポート

96:デフォルトの名無しさん
08/02/27 20:54:46
Scieneer って誰か使った事ある人いるのかな?

97:デフォルトの名無しさん
08/02/27 23:03:08
>>79
> 下の方を触りたいなら、
(*´Д`)ハァハァ

98:デフォルトの名無しさん
08/02/28 15:26:18
>>92
ちょっと待て
xyzzyよりXYZドラゴンキャノンのほうがいいと思うが

99:デフォルトの名無しさん
08/02/28 15:27:21
>>97
ハハハ、こやつめ。

100:デフォルトの名無しさん
08/02/28 20:55:32
>>98
マジレスするとzyってのはドラゴンキャノンの略です。

101:デフォルトの名無しさん
08/02/28 21:12:36
どんな略し方をするのだ

102:デフォルトの名無しさん
08/02/28 23:45:08
ANSI COMMON LISPを読みはじめたのですが、
初めの、ランレングス符号化?で nextが使えるのはなぜですか?

call-next-method だとおもい、書き換えたら動いたのでこっちが正しいと思うのですが…。

お願いします。

103:デフォルトの名無しさん
08/02/29 00:09:12
>>102
それだと持ってる人しか答えられないから
コードコピペしたほうがいいと思うよ

で、あれは let で局所変数 next に car lst を設定してる

104:デフォルトの名無しさん
08/02/29 00:14:37
    , - ,----、
  (U(    )
  | |∨T∨
  (__)_)

ありがとうございました。letを見てませんでした。

105:デフォルトの名無しさん
08/02/29 12:45:22
WindowsXP でLispプログラミングの勉強したいんだけど
まずどうすればいいかさっぱり。
助けてLisper!!

106:105
08/02/29 13:28:07
URLリンク(sourceforge.net)
これつかってみるね!

107:デフォルトの名無しさん
08/02/29 13:29:29
いくつか無料で使える処理系があるのでそれを導入してください。

108:デフォルトの名無しさん
08/02/29 22:32:04
これ使えよ
URLリンク(www.gigamonkeys.com)

109:デフォルトの名無しさん
08/03/01 02:57:05
>>105
Ubuntuを入れて
sudo apt-get install clisp
するだけ

110:デフォルトの名無しさん
08/03/01 11:03:46
>>105
ntemacs+slime+clispにするか、
xyzzyにするか
好きな方を選んでください。

111:105
08/03/01 18:05:03
>>110
XYZはちょっと・・・
今の一軍エレメンタルヒーローで完成してるんで

112:デフォルトの名無しさん
08/03/01 19:31:22
>111
「エレメンタルヒーロー」って何?

"xyzzy"の名前の由来知ってる?
Wikiを読むとすぐ分かるけど、ちょっと面白いよ。

113:デフォルトの名無しさん
08/03/01 20:36:09
>>105

GCL or SBCL + ChezEdit-NT

114:105
08/03/01 23:17:03
>>111
俺のふりをするな俺のふりをw

xyzzyの本がジュンク堂池袋支店にあったから
読んでみたけど、
ショートカットキーで動かすのがデフォっぽいから
勉強にはclispがやっぱ一番ベストかなぁ

ていうかLispすごいね。
Lispの本読んだり、家でいじってたときは、
「戻り値を引数にしてさらに、その戻り値を~」とか
そんなんでプログラミングするとかアホちゃうかっ!!
って思ってたけど、今日帰ってきてJavaっぽい言語である
ActionScript3,0でプログラミングしてたら
「戻り値を引数にしてさらに~」ってやりたいのに
わざわざ一時的な変数つくって代入してとか
クソめんどく感じた!!

まだマクロとかλとかよくわかんないけど
すげームダが無い言語っていう感じは伝わった!
てか、Lispの書物少なすぎ

115:デフォルトの名無しさん
08/03/01 23:30:36
> 「戻り値を引数にしてさらに、その戻り値を~」
これって、できない言語の方が珍しくない?

116:デフォルトの名無しさん
08/03/01 23:32:42
>>113
SBCLってWINでまともに動くようになったん?

117:105
08/03/01 23:53:52
>>115
う、そうかもしれない。
やっぱJavaとかでnewが絡んだりしたら
一時的に変数に入れるのは普通かぁ…

118:デフォルトの名無しさん
08/03/02 00:56:54
>>114
>今日帰ってきてJavaっぽい言語である
>ActionScript3,0でプログラミングしてたら

ECMAScript は C の文法をまとった Scheme と言われている様に、
Scheme の次に Scheme っぽい言語の一つだよ。
見た目に惑わされてはいけない。

119:デフォルトの名無しさん
08/03/02 01:07:19
>>117
こんなのが望みか?
System.out.println(String.valueOf(new String(new StringBuilder().append('h').append("oge"))).intern());

120:デフォルトの名無しさん
08/03/02 01:07:28
JavaScriptにはクロージャがあるのあまり知られてないよな。

121:105
08/03/02 01:11:02
>>114
そ、そうなのか!
なるほど、「ハッカーと画家」って本に
Lispは良いプログラマーを育てるって言ってたことが
なんとなくわかった気がする!

って、Schemeなんて言語もあるのか…
色々あるんだなぁ。
ってSchemeはLispの方言の一つってどゆことだ??
んー…
Lispの書物少ないから今度はSchemeあさってみるね!

122:105
08/03/02 01:12:48
うお、書き込んだら一気にレスが!w

>>119
んーそういわれると、どっちが良いんだかわかんなくなってきた…

123:デフォルトの名無しさん
08/03/02 02:24:42
>>120
俺もつい最近JavaScripの凄さを知って勉強中。
ほんとSchemeっぽいわ。
function makecounter() {
var number = 0;
var counter = function(cmd) {
if (cmd == "set") {number=arguments[1];return number;}
else if (cmd == "inc") {number++;return number;}
else if (cmd == "dec") {number--;return number;}
else if (cmd == "get") {return number;}
};
return counter;
}
var c0=new makecounter();
var c1=new makecounter();
WScript.Echo(c0("set",0));
WScript.Echo(c0("inc"));
WScript.Echo(c0("inc"));
WScript.Echo(c1("set",10));
WScript.Echo(c1("dec"));;
WScript.Echo(c1("dec"));
WScript.Echo(c0("get"));

>>122
SchemeとLispの大きな違いは名前空間が同一か値と関数で別個になっているってとこかな。

あと念のためJavaScriptとJavaは違うからね。

124:デフォルトの名無しさん
08/03/02 09:10:22
>>121
schemeだったら、gaucheが良いよ。
確か近々、gaucheの入門書がでるはず。

125:デフォルトの名無しさん
08/03/02 10:04:28
>>116

SBCLはWindowsではまだまだみたい。
学習用、ちょっといじってみるならOK。
なにしろ高速。Lispが遅いなんてこたぁないよ。

126:105
08/03/02 12:10:55
>>124
うっ!Unixで動くのか…
UnixってOSだよね?Windowsじゃ動かないかぁ
なんかEclipceで動くプラグイン的なものをみつけたので
それでやってみるね!

127:デフォルトの名無しさん
08/03/02 13:02:09
登場した頃、JavaScriptの見た目がC++に似てたからなのか、クロージャとかApplyとか使いこなしてる人って見なかったな。
ほとんどのプラグラムはCとかC++の延長で考えられてると思う。というか関数型っぽい考え方はされていないと言った方がいいか。
JavaScriptはフラナガンの本が出版されてから再評価され始めたんジャマイカ?Schemerにはアルゴリズムを流用できるから使いやすい言語だと思う。

128:デフォルトの名無しさん
08/03/02 13:46:40
向こう側のいいところは、どうやって実装するか理解していることだ
クロージャはクラスをネストすれば作れることを多くの人が知っている

129:デフォルトの名無しさん
08/03/02 13:53:57
>>126
GaucheはWindowsでも使えるよ。
ただしcygwinというパッケージを入れないとダメだけど。

cygwinなしでも動くようにしている人たちがいたと思うけど
どんな状態なのかは知らない。

130:デフォルトの名無しさん
08/03/02 13:53:59
ここ数年の JavaScript ≒ Scheme の元はこれかなぁ。
URLリンク(javascript.crockford.com)
こんなのもあるしね
URLリンク(javascript.crockford.com)

Schemeっぽいのは作った人がこれなんだから、当然なんだけども(泣ける...)
People invoke Scheme when talking about JavaScript. I was originally
drawn to Scheme when Netscape recruited me in early 1995, but there
was less than zero time to use it
URLリンク(mail.mozilla.org)

131:デフォルトの名無しさん
08/03/02 14:30:41
たしかに泣ける
日の目を見ていたのはJavaScriptだけじゃなかったんだな

132:デフォルトの名無しさん
08/03/02 17:05:11
「ハッカーと画家」の著者が Lisp の派生言語 Arc を先日発表しました。
Windows、Mac、LinuxでMzSchemeと言う処理系を利用しているそうです。

Windowsなら、DrScheme(MzSchemeのGUI環境)を使って
Arcの処理系を導入できるようですよ。

133:デフォルトの名無しさん
08/03/02 17:27:38
GaucheはMingwで作られたやつもあるよ

134:デフォルトの名無しさん
08/03/02 17:34:20
JavaScriptのユーザってAjaxやDOMを使うのがやっとの人が多いのに、クロージャの作り方を多くの人が知ってると思うか?ありえないw

135:デフォルトの名無しさん
08/03/02 18:06:36
そいつらは「CとかC++の延長」にも「関数型」にも属さない「その他」だろう。

136:デフォルトの名無しさん
08/03/02 18:18:43
かなり検索ヒットするよ。


URLリンク(www.google.co.jp)

137:デフォルトの名無しさん
08/03/02 18:29:48
>>132
おまはや

スレリンク(tech板)l50

138:デフォルトの名無しさん
08/03/02 18:59:42
>>135
世の中「その他」が圧倒的大多数な件w

139:デフォルトの名無しさん
08/03/03 00:19:38
いいかげんスレ違いだけども。
著名なライブラリ(prototype.js, jquery, YUI Ext ...)
ならばそれなりに使ってる、関数返したり、apply 使いまくったりを
クロージャというなら、だけど。

ただ、IE6 で DOM イベントにクロージャ使うとメモリリークするため
(最新パッチなら直ってるのかな) 使う場合気を使ってたりする。

140:デフォルトの名無しさん
08/03/03 04:28:53
ECMAScriptスレ同様クロージャを勘違いしてそうな連中が大量に顔出してきたな……

141:デフォルトの名無しさん
08/03/03 06:06:03
「してそうな」じゃわからんよ。
自分以外は馬鹿ばっか、っていう思春期みたいな思考でモノ言ってるようにしか見えん。

142:デフォルトの名無しさん
08/03/03 07:49:57
>>140
>関数返したり、apply 使いまくったり
するのはレキシカルスコープありきの話なんだし、別段間違った理解でも
ないのでは?
高階関数の使用のことを「クロージャつかう」、っていうのが駄目ってこと?

まあ、CLじゃないからどうでもいいんだけどwwww

143:デフォルトの名無しさん
08/03/03 08:10:52
高階関数とクロージャは別の概念だから、混同せず、
きちんと用語を使い分けるべき。

144:デフォルトの名無しさん
08/03/03 11:57:33
JavaScriptの関数は全てクロージャじゃん。
あれグローバルコンテクストすらオブジェクトで引き回し可能だから
参照の最適化困難だし。

145:デフォルトの名無しさん
08/03/03 13:19:15
>>144
javascriptって名前のせいでclass特化な言語に見られがちだけど実際はプロトタイプ指向の言語なんでどっちかっつーとLispにもっとも近い言語の一つじゃないだろうか?

java,lispと比較したらオプティマイズやJITを行う場合Lispとあんまりアプローチ変えられないよね?


146:デフォルトの名無しさん
08/03/03 17:41:52
Visual Basic.NET VS Lisp
全面戦争勃発ニツキ応援求ム

147:デフォルトの名無しさん
08/03/03 17:46:29
URLも貼らずに釣りとな

148:デフォルトの名無しさん
08/03/03 17:48:05
チョンのあやかり創価学会

偽善者が政治活動、公明党

ニセ仏教、騙されバカ信者、池田犬作チョン大教祖様、さっさと死ねや

カルトキチガイ・創価騙されバカ信者

カルト・キチガイ・偽善政治活動・公明党

カルト・キチガイ・偽善政治活動・公明党

カルト・キチガイ・偽善政治活動・公明党


149:デフォルトの名無しさん
08/03/03 18:00:40
急速にスレの質が下がってまいりました

ここらで燃料投下しとく?

おk?おk?

150:デフォルトの名無しさん
08/03/03 18:22:25
>>149
俺が許可する
権限はないが

151:デフォルトの名無しさん
08/03/03 19:15:26
よし俺にまかせろ

caddrの発音のしかたを教えてください

152:デフォルトの名無しさん
08/03/03 19:17:39
カッダー

153:デフォルトの名無しさん
08/03/03 19:21:16
じゃあcadddrは…?

154:デフォルトの名無しさん
08/03/03 19:22:59
カダッダー

155:デフォルトの名無しさん
08/03/03 20:07:34
カッダダダー

156:デフォルトの名無しさん
08/03/03 20:09:07
キャドディディアール

157:デフォルトの名無しさん
08/03/03 20:43:36
JavaScriptでクラス作ってみたよ。
なんかCLOSっぽいな。

>>153
キャドゥドゥドゥル

158:デフォルトの名無しさん
08/03/03 22:19:25
>>157
ソース


159:デフォルトの名無しさん
08/03/03 22:26:10
ずっとスクリプトは VBScript で書いてたんだが、Visual Studio 2008 で
JavaScript をサポートする (インテルセンスとかが効くようになる) と書
いてあったので、なんかの展博の時にマイクロソフトの説明員に「もう、
VBScript は、やめるんか?」って聞いてたら、すごく困ってたがしつこく
聞いたら「まあ、そう言うことです。」と言う答えだった。

と言うことで、これからは JavaScript に転向しよう...。


って、ここ JavaScript のスレじゃなかったな、すまん。

160:デフォルトの名無しさん
08/03/03 22:53:32
関数がATOMかどうか知りたいのですが、
(atom 'cdr)
t
(atom #'cdr)
t

上はシンボルがATOMで、下は関数がATOMって事で良いんですよね?

161:デフォルトの名無しさん
08/03/04 00:43:19
(functionp 'cdr)
nil
(functionp #'cdr)
t


ところで、CLの半分の実装を含むCのライブラリがあるという噂を聞いたのですが
どこで手に入りますかね?

162:デフォルトの名無しさん
08/03/04 00:51:04
functionpだったのか。
知らなかった。
#'が関数渡しだって事が思い出せて良かった。
161さんありがとう。

lispってたまに思い出したようにやるんで、いっつも忘れてる。

163:デフォルトの名無しさん
08/03/04 01:03:48
Guy Steeleって、Common LispとJavaの仕様を作ってるけど、思想的に全く別物だし、どちらが優れていると考えているんだろうね?
javaの方が新しいから、SteeleはJavaの方が優れていると考えているのかもと私は思う。

Guy Steeleの頭カチ割って中見てみたい。

164:デフォルトの名無しさん
08/03/04 08:44:54
答えはFortressで!

165:デフォルトの名無しさん
08/03/04 16:38:11
>>48
数値計算とかcommon lispでできるんですか?
どんなコードなのかかなり興味あります
lapackを呼ぶとか?

166:デフォルトの名無しさん
08/03/04 17:12:46
>>163
JavaはC++と競合させるためにつくったもので、Lispと競合するものではないって
どっかでいってたよ、GLSが。
どこでいってたんだっけねえ。

167:デフォルトの名無しさん
08/03/04 17:48:28
物事を脳内で比喩する時に
lispで考えてしまう人は居ても
Javaで行う様な人は居ないと思う。

168:デフォルトの名無しさん
08/03/04 21:01:29
>>167
オブジェクト指向はいると思う。
自分はそれです。

Lispは人生で4回は挫折しているから、Lispで考えるってことは無いな。
Lispはある程度覚えても、使わないからすぐ忘れる。再帰とかのアルゴリズムは覚えてるんだけどね。

169:デフォルトの名無しさん
08/03/04 22:20:48
>>161
ECLかな?
URLリンク(ecls.sourceforge.net)
素人なんでどれだけ実装できてるのかわからんのだけど
ちっちゃいしWindowsでも簡単にビルドできたんで
最近これで勉強してます。
LispのコードをCに変換できるのが面白い。
あと.NETシェルで作れるHyperSpecのCHMが便利。


170:デフォルトの名無しさん
08/03/05 06:09:03
>>166
これ?
URLリンク(people.csail.mit.edu)

171:デフォルトの名無しさん
08/03/06 13:07:56
>>170
それだったかもしれない。
でも案外いろんなところで言ってる気もする。
Frotressのインタビュッーでは、Fortressで科学計算コミュニティに
JavaがCコミュニティーに果たしたような効果をもたらしたいっていってた。

172:デフォルトの名無しさん
08/03/11 23:19:27
すみません.質問です.
packageのlockってどのような場合に使用するのでしょうか.
また,
(without-package-lock()
(load "path-to-file")
...
)
とするとロックが無視される?のでしょうか.


173:デフォルトの名無しさん
08/03/11 23:42:36
>>172
ご明察。その通りです。
でも、余程の事がない限りパッケージロックを破るよりは、
別にパッケージをつくったりシャドウしたりする方が良いと思われ。


174:デフォルトの名無しさん
08/03/12 18:07:43
172です.

>>173
コメントありがとうございます.

Lispの場合プログラムを配布する際にはロックをかけるものなのでしょうか.


175:デフォルトの名無しさん
08/03/12 20:19:19
処理系のCLパッケージのようにc再定義されると困るようなもの
(carやcdrが再定義されるとこまるetc)には掛かっていますが、
普通のものには殆ど掛かっていないと思われます。
また、パッケージのロック機能自体オプションだったと思うので、
処理系依存です。

176:デフォルトの名無しさん
08/03/12 21:52:26
172です.

>>175
> 処理系のCLパッケージのようにc再定義されると困るようなもの
なるほど,そう言うことですか.

toplevelとpackageで混乱してます.
もうちょっと勉強してきます.
ありがとうございました.


177:デフォルトの名無しさん
08/03/21 10:03:34
Common Lispは、Javaで言うBigDecimalのような十進数演算ができる
ライブラリや関数はありますか?

178:デフォルトの名無しさん
08/03/21 10:18:08
BCD より Bignum で小数位置を適当に自分で持ってあげたほうがいいんじゃないかな。

179:177
08/03/21 10:50:37
>>178
どうもありがとうございます。
やはりそうですか。
Googleで調べてみたのですが、見つかりませんでした。

180:デフォルトの名無しさん
08/03/21 11:12:05
表示は変かもだけどratioで計算するのでは不満?


181:177
08/03/21 11:31:12
>>180
お金が絡むようなWebアプリに適用できるのか(簡単に書けるのか)、
調べているのですが、ratioでも適用できると思いますが、
十進数演算を素直に記述できるような標準的な
ライブラリがあるのかなと思いまして。




182:デフォルトの名無しさん
08/03/21 12:06:32
maximaが大きい行列を実質扱うことできないと前に検索したblogに書いてあったのですが本当なのでしょうか?

183:デフォルトの名無しさん
08/03/21 19:03:50
大きいの定義は。

184:デフォルトの名無しさん
08/03/21 20:28:33
うんこ/おしっこ

185:デフォルトの名無しさん
08/03/22 10:55:35
Common Lispの引数の順番は統一性がないのでしょうか?

例えば
(etl オブジェクト インデックス)
(gethash キー オブジェクト)
となっていますが、
他の関数もこのように、てんでんばらばらなのでしょうか?
使っているうちに慣れると思うけど、なんだか美しくないなぁ。

186:185
08/03/22 11:25:52
Practical Common Lispを読み進めていったら

By an accident of history, the order of arguments to gethash
is the opposite of elt--elt takes the collection first and then
the index while gethash takes the key first and then the collection.

と書いてありますね。
他の関数は大丈夫なのかな?

187:デフォルトの名無しさん
08/03/22 11:58:26
みんな一度は考える事だな。でもまぁ、ハッシュと配列アクセスの引数が揃うと何かすごい進歩がある、
というならともかく、気分で非互換にするわけにもいかなかったんだろう。
まぁ次世代のLispの時には揃うかもね。

あるいは↓のように自分でなんとかするとか。コンパイラががんばれば効率はかわらんはず。

;; c.l.l のスレより転載 URLリンク(groups.google.com)
(proclaim '(inline hashget))
(defun hashget (table key &optional default)
(gethash key table default))
(defun (setf hashget) (value table key &optional default)
(setf (gethash key table default) value))

どうしても許せん、ならSchemeとか…

188:デフォルトの名無しさん
08/03/22 12:21:45
Common Lispは惰性と妥協の塊だからしょうがない

189:185
08/03/22 15:49:42
>>187
どうもありがとうございます。
リンク参考になりました。

>>188
やはりそうですか。
JavaやRuby等の、比較的最近の言語から見ると
関数名や引数の順番の一貫性の無さが気になってしまいます。

190:デフォルトの名無しさん
08/03/22 16:20:14
上の例のように関数名や引数の順番の一貫性の無さが気になったら
自分好みに変えられるのがLisp風。
むしろそこを気にかけてほすい。
気になった箇所を徹底的に自分好みに変更するのも勉強になります。

191:デフォルトの名無しさん
08/03/22 16:48:46
一貫性が無い、のは事実だけど、
覚えることがそもそも少いから、あまり気にしたことないなぁ。

192:デフォルトの名無しさん
08/03/22 21:40:12
「lisp」という単語でネットサーフィンしていたら「仕様記述からソース生成」などという言葉が出てきたのですが、ありえないですよね?
ただの電波ですよね?

193:デフォルトの名無しさん
08/03/22 21:52:16
その「仕様記述」とやらによるけど、厳密さが十分にあれば可能ですよ。別にLispに限らないけどね……
S式があるおかげでフォーマットに悩まないとかマクロのおかげでコード生成が身近というあたりが利点かもね。
でも、あいまいな仕様でもLispをつかうだけで魔法のようにまともなソースができあがる、なんて話ならありえない。

194:デフォルトの名無しさん
08/03/22 22:12:38
あいまいでない仕様などそう簡単に書けないし、激しく無理がありそうな気がします。

195:デフォルトの名無しさん
08/03/22 22:16:07
>>192
Leeを思い出したww

196:デフォルトの名無しさん
08/03/22 22:19:50
無理なものは無理だろうね。
元ネタがどこだなのかわからんから推測しか言えないが、厳密にかける世界の話だったんじゃないかな?
ファイルフォーマット解析とか状態遷移とかコンパイラとか、仕様を厳密に記述するほうが自力でゴリゴリコーディング
するより楽、という話ではないかな。

197:デフォルトの名無しさん
08/03/22 22:19:53
て言うか、「仕様記述からソース生成」なんて言うのは、文字列処理や
リスト処理がたくさん出てくるので、Lisp 向き。



と言う時代もあったけど、最近の言語はどれもそれなりに文字列処理や
リスト処理に不自由しなくなってきたので Lisp だからどうと言うこと
は少なくなくって来た。

198:デフォルトの名無しさん
08/03/22 22:30:05
>>197
実行時にevalがあるような言語だけじゃないかな?
lispだとマクロが化け物だから可能な領域ってのもあるからそこを前提にされると太刀打ちできない気がする。



199:デフォルトの名無しさん
08/03/22 22:30:16
>>192
仕様記述からプログラムが書けるとすれば、その仕様記述は(自然言語とかけはなれた)
曖昧性の無いもののハズで、それは完全にプログラムそのものだろ。
可能ちゃ可能だろうけど、それに何の意味があるんだ?
といつも思う。

200:デフォルトの名無しさん
08/03/22 22:40:42
発想が逆なんじゃないかな?
仕様を定義するほうが、プログラム書くより量的に少ない場合とか、
そうでなくても厳密な仕様をミスなく書き下す手間が自動化できてラッキーとか、
モデルチェッカとかでチェックした仕様をソースにできるとか、
図でプログラム読めない人(←でも業務とかその道のプロ)に漏れや抜けがないかを
チェックしてもらって、そっからミスなくソースができてうれしーとか。


201:デフォルトの名無しさん
08/03/22 22:54:24
そもそも実用になっていないって事が良くわかった。

202:デフォルトの名無しさん
08/03/22 22:58:56
いや、部分的であれば仕様記述からのプログラム生成は十分使い物になってるし、
実務でも使ってるよ。単なるちょっとした規模のマクロ、って意味だけど。

203:201
08/03/23 00:25:47
>>202
想像できないけど、実務で使われているなら納得せざるおえないのか。

204:デフォルトの名無しさん
08/03/23 00:57:26
DSL の一種と思えるのかな?

205:デフォルトの名無しさん
08/03/23 05:57:22
CでYaccとか使ってみれば想像できるようになるかも

206:デフォルトの名無しさん
08/03/23 07:01:23
>>205
それで想像できるなら正規表現使えば想像できる筈

207:デフォルトの名無しさん
08/03/23 08:47:24
そーいわれれば lex, yacc はそれに近いなあ

208:デフォルトの名無しさん
08/03/23 09:12:26
>>200,202
それをプログラムではなく仕様と呼ぶのは何故なんだぜ?
売り込みに来たヤツがそういってるから?

209:デフォルトの名無しさん
08/03/23 10:31:37
ずいぶん頭固いね。

仕様書って文章で書いた奴しか見たことないのかな。

210:デフォルトの名無しさん
08/03/23 10:37:24
と、まるで何かを見てきたふうなことを言ってるけど、別に何も見てきてないんでしょ?w
だから具体的に書けない。

211:デフォルトの名無しさん
08/03/23 14:02:39
>>209
とりあえず、199の時点で皆に膝を叩いて納得して欲しかったんじゃない?

212:デフォルトの名無しさん
08/03/23 14:34:59
だろうね。

>>199
厳密に書かないといけないのは確かだけど、意味がないわけじゃない。

例えば、今時特殊な状況を除けば普通高級言語でプログラム書くけど、これだって
当然曖昧性のないものでなのでアセンブラと同様に厳密に書かないといけない。

だからと言って意味がないわけじゃないだろ?

ループのためだけにラベル名を考えたり、ローカル変数のサイズ計算してスタック
ポインタから引くためのコード書いたりしなくて良くなるだけでも、ずいぶん楽だ
しコードの品質も上がる。

それと同じで、例えば通信やってる人なんかだと仕様書として状態遷移図とか、ス
テータスマトリックスを渡されたり、自分で書いたりする。

今はこれを見て「人手で」コーディングしてるでしょ?

で、仕様変更があったら再度コードを「人手で」修正してるよね。

この部分を自動化するだけでもかなり楽になると思わない?

213:デフォルトの名無しさん
08/03/23 15:36:06
& % #' などの略記一覧はどこかにないでしょうか?
emacsでcommon lisp開発環境作るとしたらslimeだけでいいのでしょうか?

214:デフォルトの名無しさん
08/03/23 18:14:29
>>213
> emacsでcommon lisp開発環境作るとしたらslimeだけでいいのでしょうか?
後はマニュアルを引きやすくしとけばいんでね

215:デフォルトの名無しさん
08/03/23 18:46:24
>>213
「Common Lispリーダーの標準的なマクロ文字が知りたい」の?だとしたら % って何だろ…
とりあえずHyperSpec見れ
URLリンク(www.lisp.org)
URLリンク(www.lisp.org)

216:デフォルトの名無しさん
08/03/23 19:20:00
>>215
ということは変数名の先頭に%がついてたのは特別な意味はないのですね


217:デフォルトの名無しさん
08/03/23 19:30:55
>>216
ないといえばないけど、慣習の一部

URLリンク(www.cliki.net)

218:デフォルトの名無しさん
08/03/23 20:26:08
CLispがGNU Common Lispかと思っていたけど、
GNU Common LispってGCLだったのね。

違いは何だろうと思って探したら
URLリンク(okwave.jp)
がありました。

219:デフォルトの名無しさん
08/03/24 02:30:50
さいきんLispに興味があります
普段何に使ってますか?

1. シェルスクリプト並にナチュラルに普段使いをしている
2. ある程度以上注意深く作るアプリケーションやモジュール作成の時のみに使用
3. 実用性を考えたら負けなものをニヤニヤしながら作ってて楽しい

220:デフォルトの名無しさん
08/03/24 05:58:56
シェルスクリプトとは違う意味でナチュラルに普段使い。
思いついたことをさらっと試すのに使ってる。
Emacs使いでないとわからん感覚かも

221:デフォルトの名無しさん
08/03/24 08:38:11
大体何にでも使うけど、シェルスクリプトなんて普段くまねーからわかりません。

222:デフォルトの名無しさん
08/03/24 10:20:20
lispの入門のホームページはよく見つかるのですが、それ以上の話題はどこを探せばいいのでしょうか?
cffiを使ってc++のプログラムをlispから呼びたいのですがサンプルのコードの意味が今一つわかりません
URLリンク(www.swig.org)
ここあたりがそうみたいなのですが、これが理解できるようになるための
中級向けテキストはどこかにないのでしょうか?

223:デフォルトの名無しさん
08/03/24 10:39:41
>>222
>それ以上の話題
は残念ながら殆ど英語圏にあります。
ffi等は実装依存なので、まず使っている処理系がなにかを書くと適切な返事があるかも。


224:デフォルトの名無しさん
08/03/24 10:42:44
>>222
swigを使うのがわからないのか、ffiの使い方自体がわからないのか、どっちなんだよ?

225:デフォルトの名無しさん
08/03/24 10:59:49
swigは他の言語で使ったことがあるので大体見当がつきますが、
lispのサンプルコードで
cl:letと単純にletと書くのにどう違いがあるのか
などの記法が分からずつまづきます
ffiの使い方がわからないですpython.ctypesと似たようなものなのでしょうか?


226:デフォルトの名無しさん
08/03/24 11:08:01
>cl:letと単純にletと書くのにどう違いがあるのか
>などの記法が分からずつまづきます
これはCLのパッケージについて入門用のサイトで勉強すれば分かると思うので、
一歩戻ってパッケージについて学ぶことをおすすめしたいところ。

227:デフォルトの名無しさん
08/03/24 11:16:55
>>225
ffiは処理系依存だから、まずおまいさんが使ってる処理系のマニュアル嫁。
処理系にできるだけ依存したくないならcffiとかuffi使え。
でもswig使ったことあるならインタフェース書けるだろうし、
理解しなくても使えると思うんだが。

228:デフォルトの名無しさん
08/03/24 13:35:31
>>219
愛があればRubyあたりとそう大差ない普段使いができると思ってもらっておk
PerlはCPANが強力過ぎるしPythonはGUIがあるから常用を比べるのはちょっと酷

ニコニコ動画ダウンローダー(ちょっと色々混じってるが)
URLリンク(read-eval-print.blogspot.com)

ただ、この利用レベルに至るのには時間がかかるのが難点
「別にLispでなくてもいいじゃんね?」という内からの声を無視できる程度には超越しないとイカン

229:デフォルトの名無しさん
08/03/24 13:37:29
maximaを使いたくてpythonからclispに乗り換え挑戦中だ

230:デフォルトの名無しさん
08/03/24 13:48:57
maximaをアプリとして使うだけならCL知らんでも
(自分でCL使って関数書きたいとか言わなきゃ)問題なかろ。

231:デフォルトの名無しさん
08/03/24 15:00:49
>>228
Lispに愛が芽生えてきますた。
言語への慣れと理解によって大きく違うと思いますが、
Rubyと比べて、生産性は良さはどんなものでしょうか?


232:デフォルトの名無しさん
08/03/24 20:27:54
Lispは神が世界を記述するのに使った言葉。
最初に「光あれ!」とかやってたのは全部Lisp。

一方、Rubyはただのスクリプト言語。

233:デフォルトの名無しさん
08/03/24 20:32:44
URLリンク(www.aoky.net)

234:デフォルトの名無しさん
08/03/25 10:56:09
Lispはconsセルの操作しかできないと思っていた俺は
CLOSを知った今、猛烈に感動している。
凄いなCommon Lisp♥

235:デフォルトの名無しさん
08/03/25 11:01:31
確かめてないが、見えない根っこのほうではconsセルの操作しかしてねーと思うぞ

236:234
08/03/25 11:19:24
CLOSどころか、defstructでも感動してしたYO。

>>235
そうですよね。
でも、なんだかとっても凄いぞCommon Lisp。

237:デフォルトの名無しさん
08/03/25 22:26:50
>>235
まあ、足し算とか引き算なんかもできないとスゲー困るわけで...

238:デフォルトの名無しさん
08/03/25 22:41:42
cons だけで数を表現して足し算と引き算とかは実装できるよ。
ラムダ計算の初歩ですよ。遅いけど。

239:デフォルトの名無しさん
08/03/26 01:44:37
Rと組み合わせられるなんて

240:デフォルトの名無しさん
08/03/26 01:58:43
最近は何見てCLOSを勉強してるんだろ?

241:デフォルトの名無しさん
08/03/26 02:20:26
URLリンク(www.geocities.jp)

242:デフォルトの名無しさん
08/03/26 03:31:13
Rを呼べる
URLリンク(common-lisp.net)


243:デフォルトの名無しさん
08/03/26 15:19:34
accountはcustomer-name slotを持つクラスで、

(defun (setf customer-name) (name account)
(setf (slot-value account 'customer-name) name))

と定義すると、

(setf (customer-name my-account) "hoge")

と書けるのはどうしてですか?

defunを使った関数定義で
(defun (setf ~) ....)
とdefunの直後に括弧が付く場合、何を意味することになるのでしょうか?

初心者丸出しの頓珍漢な質問だと思いますが、お願いします。

244:デフォルトの名無しさん
08/03/26 16:54:04
何でって言われてもそれがアクセサの定義の仕方だから。

245:デフォルトの名無しさん
08/03/26 17:15:34
もうちょっと具体的に説明すると CLtL2 のインヴァージョンをよく読むとよい。
OnLisp の汎変数の説明のところでもいいけど。

246:デフォルトの名無しさん
08/03/26 18:54:02
cmuclをemacs22+slime2.0で使っています。
キャラクタエンコードをutf-8を通す設定にしてslimeコンソールから日本語(に限らずutfで256以上の値を持つ文字)を食わせると
cmucl側からソケットが切断されてしまうのですがこの辺りを解決する情報をお持ちの方はいますでしょうか?



247:デフォルトの名無しさん
08/03/26 19:41:14
>>246
そもそもcmuclってutf-8通せたっけ?

248:243
08/03/26 20:49:02
>>244,245
Googleで調べていたのですが、このような機能をなんと呼ぶのかも
分からず、困っていました。
CLtL2 inversionで調べたら、出てきました。
助かりました。どうもありがとうございます。

249:デフォルトの名無しさん
08/03/27 00:50:24
>>247
単体で起動すると通りますがslime経由だと通らないのです。

sbclも試したのですが、こちらは主用途のaserveでつかっているhtmlgenの中に日本語テキストがあると出力がそこで打ち切りになってしまいますです。
ex.
aserveへ↓を食わせたときに
(:html (:body "test" :br "test2" :br "多バイトコード" ))
ブラウザでaserveをアクセスしたときに test2<br>までが出力されます(sbclのバグトラックにはレポートあがってました)
この例をcmuclでやるとコンソールから直に打ち込むとOKなのですがslime経由だと"多"が送り込まれた時にsocketがreset by peerになってしまうのです。

lispの学習で自分の手習いを実用コードで行おうというのがおこがましいのかなぁorz


250:デフォルトの名無しさん
08/03/27 07:42:04
>>249
windowとunixで
CLISP+emacs+slimeでutf-8でコードを書いていますが、
CLISPだと駄目ですか?

251:デフォルトの名無しさん
08/03/27 07:59:35
>>250
うちの .emacs にはこんなことが書いてあるが...

(setq slime-lisp-implementations
'((sbcl ("sbcl") :coding-system euc-jp-unix)
(clisp ("clisp" :coding-system euc-jp-unix))))
(setq slime-net-coding-system 'euc-jp-unix)


252:デフォルトの名無しさん
08/03/27 09:30:19
>>246
これ自分も知りたいと思ってた。
自分が確かめた範囲では、下記の通り

*UTF-8で日本語が使えるかどうか*
--そのままでOKなもの
sbcl
clisp
allegro cl
clozure cl

--処理系で日本語は使えるけれど素のSLIMEだと切断されるもの
cmucl
ecl
lispworks
abcl

ちなみに「日本語が使える」ってのは処理系で表示できてる、位の意味で、
厳密には処理系ごとに事情が違ってます。
多分、処理系に応じたswank-~.lispを修正すれば良いんだと思うけど、
漏れは、挫折して、素でOKなものを使ってます。


253:247
08/03/27 11:07:58
>>249
> この例をcmuclでやるとコンソールから直に打ち込むとOKなのですがslime経由だと"多"が送り込まれた時にsocketがreset by peerになってしまうのです。
utf-8 で接続はできて、日本語を送ろうとしたときに接続が切れるの?

254:デフォルトの名無しさん
08/03/27 11:40:24
3日でclispを実用的に使えるレベルになろうと思って挫折した
憶えないといけないこと多いね
classの考え方が他の言語と違ったりするし

255:デフォルトの名無しさん
08/03/27 11:43:32
>>254
次に3日でマスタしようとして挫折する予定の言語はなんですか?

256:デフォルトの名無しさん
08/03/27 11:45:05
swank以前の問題でコンソールではたまたまアスキー越えた部分が
日本語になって出てきているだけじゃないか?
char-code-limitはいくつ?

257:デフォルトの名無しさん
08/03/27 11:46:18
Brainf*ck

258:デフォルトの名無しさん
08/03/27 12:51:21
>>254
あなたは何をやっても駄目そうですね。

259:デフォルトの名無しさん
08/03/27 14:26:57
>>246

cmucl 19e

- Preliminary support for external formats. Currently only
iso8859-1 and utf-8 are supported. Utf-8 support is limited
since CMUCL only has 8-bit characters.


260:デフォルトの名無しさん
08/03/27 14:32:59
swank の方でも cmucl への接続時は iso-latin-1-unix 以外の coding だと
接続できないように書かれているから、そもそも utf-8 で接続できているのが
おかしいというか勘違いだろう。

261:デフォルトの名無しさん
08/03/28 03:04:37
>>259
ガーン、有難うございました orz

そうか、external-formatだけダメってのもあるのか,Release-noteはちゃんと読まないとだめですねぇ


262:デフォルトの名無しさん
08/03/30 19:57:31
(setq y '(1 2 3 4 5 6 7 8 9 10 11))

(defun visitor (x)
(+ (car x) (visitor (cdr x))))

(visitor y)


スタックオーバーフローで死ぬんですけど・・・。
xyzzyにて。

263:デフォルトの名無しさん
08/03/30 20:03:43
すまん。自己解決した。

(setq y '(1 2 3 4 5 6 7 8 9 10 11))


(defun visitor (x)
(if (equal x nil) 0
(+ (car x) (visitor (cdr x)))))


(visitor y)

264:デフォルトの名無しさん
08/03/30 21:14:41
ねらい通りのものができたので、記念書きこ。

(setq x '(1 2 3 (4 5 6 (7 8 9 ) 10 11 )))


(defun visitor (x)
(if (equal x nil) 0
(if (listp (car x)) (+ (visitor (car x)) (visitor (cdr x)))
(+ (car x) (visitor (cdr x))))))


(visitor x)

265:デフォルトの名無しさん
08/03/30 21:21:22
一つの関数書くのに一時間以上かかってる。
鬱だ。情けない。

266:デフォルトの名無しさん
08/03/30 21:43:40
ま、最初はそんなもんじゃないかな

なんとなく別解を書いてみた

(defun visitor (x) (if (atom x) x (apply #'+ (mapcar #'visitor x))))

267:デフォルトの名無しさん
08/03/30 22:35:30
>>266
まさか同じ処理をするとは思えませんでした。
高階関数を使うとそんなにすっきり書けるんですね。
勉強になりました。ありがとうございました。

268:デフォルトの名無しさん
08/03/31 00:08:43
短く書くだけならこれで十分じゃね?↓

(defun visitor (x) (apply #'+ x))

269:デフォルトの名無しさん
08/03/31 00:10:09
…ってごめんよく読んでなかった、今のなしで orz

270:177
08/03/31 10:19:14
>>266
なるほどな~。
私もLispを始めたばかりなので、勉強になります。

271:デフォルトの名無しさん
08/03/31 14:37:40
数式処理(maxima)で
[x1,x2,x,3...]という記号(変数?)の列を生成したいのですが
defmacroを使うのが正しいやりかたなのでしょうか?

272:デフォルトの名無しさん
08/04/01 02:24:09
URLリンク(d.hatena.ne.jp)
rcl(Rとのインターフェイス)が動かなかったので補正してみました.
ひょっとしてバグなのでしょうか?

273:デフォルトの名無しさん
08/04/01 16:15:05
swigでc++ をwrapしてclispから呼びたい
swigのcffiオプションはcはできてもc++はできないみたいなので
Allegro Common Lisp用のものを生成して
swig -allegrocl -c++ example.i
ちょっと書き換えればclispやsbclで動くものになるんだろうか


274:デフォルトの名無しさん
08/04/02 00:40:55
ACLの個人向けライセンスの安いのだしてくれんものかのぉ。orz


275:デフォルトの名無しさん
08/04/02 08:17:07
>>274
学生になったらいいんじゃね?

276:デフォルトの名無しさん
08/04/02 08:43:39
こっちはACLのチュートリアルやってみてるところだけど、
ヴァージョンが違うからなのか、そのままのとおりにならないorz
親しんでもらって売ろうという気は無いのかなと思った。


277:デフォルトの名無しさん
08/04/02 20:43:29
どのチュートリアルの話ですか?
ANSI CL 規格の範囲内ならともかく、ACL処理系依存の部分なら
全バージョンで完全な互換性を保つ事を要求するのは酷なのでは…。


278:デフォルトの名無しさん
08/04/03 00:07:32
URLリンク(www.common-lisp.ru)
すごい便利そうなんだけどドキュメントはどこ?

279:デフォルトの名無しさん
08/04/05 09:07:12
GNU clispつかってデータ処理してるんだけど
少ないデータをかませたらきちんと結果が出てくるんだけど
大量のデータをかませたら
APPLY: too many arguments given to +
[Condition of type SYSTEM::SIMPLE-PROGRAM-ERROR]
と出てくる.
スタックサイズか何かだと思うんだけど...どうやったらうまくapplyしてくれるようになりますかね?

280:デフォルトの名無しさん
08/04/05 09:37:40
エラーメッセージに何が問題か書いてあるんだけど、読んでから質問してる?

281:デフォルトの名無しさん
08/04/05 11:02:52
(reduce #'+ args)

282:デフォルトの名無しさん
08/04/05 11:55:26
>>279
Clispは引数の数に制限があるの?

283:デフォルトの名無しさん
08/04/05 20:18:01
>>282
CALL-ARGUMENTS-LIMIT
URLリンク(www.lispworks.com)

284:デフォルトの名無しさん
08/04/05 20:41:10
>>283
282じゃないけど、こんな変数あるんだ、勉強になったよ
ちなみに手元で調べた結果(全部 mac os x 上)
clisp: 4096
acl: 16384
sbcl: 536870911

285:282
08/04/05 21:40:57
>>283
ほー。こんなのがあるのですか。
ありがとうございます。
こういうのはどのように知ったのですか?

286:デフォルトの名無しさん
08/04/05 22:42:57
283じゃないけど、漏れは282同様に派手にAPPLY→エラー→調べる→知る、という流れだったね。
ANSI 規格では最低 50 ときまってるので、50 個の引数までなら CALL-ARGUMENTS-LIMIT を意識せずに安心して使える。


287:デフォルトの名無しさん
08/04/05 23:42:37
283だけど、漏れは282同様に派手にAPPLY→エラー→281のようにreduceで書く→忘却→
ある日PCL読んで制限について書いてるのたまたま発見、という流れだったね。
URLリンク(www.gigamonkeys.com)
ANSI 規格では最低 50 ときまってるけど、 CALL-ARGUMENTS-LIMIT のことは忘れて reduce 使うね。

288:デフォルトの名無しさん
08/04/06 20:13:57
おれ様用メモ。constant variable とその最小値。

multiple-values-limit >20
call-arguments-limit >50
lambda-parameters-limit >50

下は多分誰も気にしない値。
array-dimension-limit >1024
array-rank-limit >8
char-code-limit >96
array-total-size-limit >1024

289:デフォルトの名無しさん
08/04/06 22:05:03
> 下は多分誰も気にしない値。
char-code-limitはUnicodeサポートの目安に使ったりするみたいよURLリンク(lispuser.net)
array-total-size-limitも結構使う。おさまらないやつは分割したりしなきゃいけないから。

290:デフォルトの名無しさん
08/04/06 22:28:38
>>288
細かいことを言うようだが、正確にはすべて等号を含む、かな。

291:デフォルトの名無しさん
08/04/06 22:53:01
>>289
HyperSpecのぶ厚い仕様はダテじゃないのね、、、失礼しました。
>>290
(´・ω・`)

292:デフォルトの名無しさん
08/04/08 10:52:12
CL-USER> (+ 1 2)
3
CL-USER> (+ 2 3)
5
CL-USER> (+ 3 4)
7
CL-USER> (+ * ** ***)
15

こんな事ができるのね。

293:デフォルトの名無しさん
08/04/08 12:26:03
>>292
それ、便利だよね。
slimeとかじゃ使えんが。

294:292
08/04/08 12:47:38
>>293
slime+clispで試しました。


295:デフォルトの名無しさん
08/04/08 18:42:54
>>294
sbcl だとダメだった

296:デフォルトの名無しさん
08/04/08 18:52:51
>>295 うちは大丈夫だが...
; SLIME 2008-03-24
CL-USER> (+ 1 2)
3
CL-USER> (+ 3 4)
7
CL-USER> (+ 5 6)
11
CL-USER> (+ * ** ***)
21
CL-USER> (lisp-implementation-type)
"SBCL"
CL-USER> (lisp-implementation-version)
"1.0.15.41"
CL-USER>


297:デフォルトの名無しさん
08/04/08 19:01:40
つかこれCommon Lisp標準の機能でしょ?

298:デフォルトの名無しさん
08/04/08 22:38:30
この辺ですな。
URLリンク(www.lispworks.com)
"*" 辺りしか使ったことないけど。

299:デフォルトの名無しさん
08/04/08 23:32:33
一番使うのは + 系だけどな


300:デフォルトの名無しさん
08/04/09 00:47:29
*も+もいいよね。CLで好きな機能の一つだ。

301:デフォルトの名無しさん
08/04/10 12:13:27
xyzzyでは使えないの?

302:デフォルトの名無しさん
08/04/10 12:42:04
自分で試せばいいじゃないか。

303:デフォルトの名無しさん
08/04/10 16:14:13
>>301
使えないみたいですね。

304:デフォルトの名無しさん
08/04/10 16:19:08
xyzzyはCommon Lispじゃないからしょうがない

305:デフォルトの名無しさん
08/04/10 23:34:06
>>301 とかは xyzzy に REPL があるという認識なのね。
オレにはその認識はなかったので、かなり新鮮。

欲しければ実装してやればいいんじゃね。

306:デフォルトの名無しさん
08/04/11 00:06:12
REPL よりも lisp-interaction-mode 改造の方が使いやすいかも

307:デフォルトの名無しさん
08/04/11 06:35:02
*scratch*に入力した文字は消え去ることもないし、他に履歴呼び出しもあるしで
別に苦労して* + /を実装する必然性も感じられないんだけどw

308:デフォルトの名無しさん
08/04/11 08:37:14
(let ((* nil) (** nil) (*** nil))
(loop
(setq *** ** ** * * (eval (read)))
(print *)))

*付きREPLってこんな感じ?ほとんど意味無いけどw

309:デフォルトの名無しさん
08/04/11 09:39:28
>>308
実際の実装も割とそんな感じですね。

310:デフォルトの名無しさん
08/04/11 13:26:01
>>307
さほど苦労ではないから多くの処理系で実装されているのでは?w

311:デフォルトの名無しさん
08/04/11 15:53:08
多くの処理系には *scratch* がない

312:デフォルトの名無しさん
08/04/11 16:31:45
会話が成立してないな。ここは人工無脳たちも来てるから仕方ないけど。

313:デフォルトの名無しさん
08/04/12 00:32:41
>>310
いや、規格できまってるからですw

314:デフォルトの名無しさん
08/04/12 10:15:47
(funcall
(car
'(#'test . ("arg1" . "arg2"))))

これが,
FUNCALL: #1=#'TEST is not a function name; try using a symbol instead
としてエラーが出るのですが,おそらくクオーティングされてるんだと思います.
これをfuncallでできるようにやるにはどうしたらよいのでしょう?

315:デフォルトの名無しさん
08/04/12 10:40:55
ドッドペアとはな。コンスセルの節約かい?

A: cons で対応
(funcall (car (cons #'test '("arg1" . "arg2"))))

B: バッククォートで対応
(funcall (car `(,#'test . ("arg1" . "arg2"))))


316:デフォルトの名無しさん
08/04/12 11:50:56
testが決め打ちなら、

(setf (symbol-function 'test) #'car)
(funcall (car '(test . ("arg1" . "arg2")))
'(foo bar))
;-> foo
で良いだろうし

testが動的に変化するなら、
(let ((test #'car))
(funcall (car `(,test . ("arg1" . "arg2")))
'(foo bar)))
-> foo
じゃない?
function(#')付けるとややこしくなると思うよ。

もしくは最初のalistの作り方ががそもそも問題で、
(let ((test #'car)
(alist (cons #'car '("arg1" . "arg2"))))
(funcall (car alist)
'(foo bar)))

とか。
なんにしろ、何が実現したいのかで変ってくる例だと思う。
関係ないけど、SchemeとCommon Lispの名前空間の扱いの違いを理解するには良い例かも。

317:デフォルトの名無しさん
08/04/12 12:08:31
質問者は名前空間というよりクォートについて聞いているのではないか?
(define (test) 100)
((car '(test . 100)))
はSchemeだってエラーでしょう。

元質問は、俺にもかけだしだった頃に似たような経験があるなぁ。
1. #' + シンボルで関数を表現する、という説明を聞く => やってみる '(#'test) うごかNeeeなんで?
2. #'test を「評価」すると関数になるんだよー ' でクォートされたものは評価されない
3. Aha!

318:デフォルトの名無しさん
08/04/12 13:26:35
>質問者は名前空間というよりクォートについて聞いているのではないか?
>>316 >関係ないけど、Sche...
と書いてますし、質問と関係ないことについては、ご指摘の通りですw

quoteを回避するってなら、
(funcall (cadar '(#'car)) '(foo bar baz))
って方法もあるね。
さらに横道に逸れるけどw

319:デフォルトの名無しさん
08/04/12 13:41:41
On Lispで関数内でクオートしたリストを返しては駄目だとあるので、

この関数を定義して、
(defun exclaim (exp)
(append exp (list 'oh 'my)))

CL-USER> (exclaim '(hoge fuga))
(HOGE FUGA OH MY)
CL-USER> (nconc * '(goodness))
(HOGE FUGA OH MY GOODNESS)
CL-USER> (exclaim '(foo bar))
(FOO BAR OH MY GOODNESS) ←どうしてこうなるの???

上記の(list 'oh 'my)は関数が呼ばれるたびに
生成されると思ったのですが、どうして関数内で定義されている
リストが影響されてしまうのでしょうか。

320:デフォルトの名無しさん
08/04/12 14:40:32
漏れの環境では、再現しないんだけど…。
CLISP、SBCL
HyperSpec博士の出番だね。

(defun exclaim (exp)
(let ((lst (copy-list '(oh my))))
(append exp lst)))
でも同じ結果になるのかな?

321:319
08/04/12 15:06:49
>>320
> (defun exclaim (exp)
> (let ((lst (copy-list '(oh my))))
> (append exp lst)))

この関数で試してみたら、うまく動きました。
ありがとうございます。

もう一度、
(defun exclaim (exp)
(append exp (list 'oh 'my)))
を定義して試してみたら、うまく動きました。

CLisp,Slimeで試していたのですが、
上記の関数は別ファイルに書き、
c-c c-l
でloadfileしていたのですが、保存前の
ファイルをloadfileしていたのだと思います。
すみません。

322:デフォルトの名無しさん
08/04/15 13:12:56
common lispについて情報交換 質問などができるMLはどこかにないでしょうか?

323:デフォルトの名無しさん
08/04/15 15:25:05
>>322
MLでは無いですが、mixiにはコミュニティがありました。
この前見たときは8名ほどだったような。

日本語で情報交換できるMLがあったら私も知りたいですが、
このスレが一番活発だったりして。

324:デフォルトの名無しさん
08/04/15 20:58:44
>このスレが一番活発だったりして。
ありうるw

いまどきブログで書く人が多いからMLも活発にならないかもしれない。
そういってもcommon lispのブログもあまり見かけない気はするけどw

325:デフォルトの名無しさん
08/04/15 22:20:11
Common Lisp Night やろうぜ!

326:デフォルトの名無しさん
08/04/15 22:47:26
>>325
一晩かけてみんなでカッコを黒板に清書だな

327:デフォルトの名無しさん
08/04/15 23:21:03
LispDaysの中の人の更新がないしなぁ。

僕はとっても楽しみにしてるんで、日常だけでもいいから日記かいてくれないかなぁ。


328:デフォルトの名無しさん
08/04/16 02:27:49
去年ちょこっとcommon lispのブログが増えたけど、去年中に
大体がcommon lispnについて書くのやめちゃったね。
対してSchemeはあんまりそういう傾向はないみたいなんだけど。
なんでだろ。Schemeは教材が充実してるから学習日記が書きやすいとか、かな?

329:デフォルトの名無しさん
08/04/16 02:31:53
Common Lisperは仕事が忙しいんですよ

330:デフォルトの名無しさん
08/04/16 02:52:53
つまり暇な学生には人気がないってこと?w

331:デフォルトの名無しさん
08/04/16 03:34:41
ハテナ ダイアリィのcomon lisp groupでも作ればいいのかな

332:デフォルトの名無しさん
08/04/16 05:55:21
はてなにLisp系のグループは2つあるみたいだけど、うち一つは休眠中。
もう一つも登録者8人中、アクティヴなのは4人ぐらいしかいないみたい。
この現状でさらにもう一つCLersのグループを作ったとしても…

333:332
08/04/16 06:00:35
ごめん、訂正。他にSICPのグループがあって、こちらはけっこう人数がいるみたいだ。
「はてなにLisp系のグループは2つ」というのは間違いでした。

334:デフォルトの名無しさん
08/04/16 08:26:52
Common Lisp ブログ、何でもいいから沢山あるといいね。
新仕様 Common Lisp The 3rd とかあると盛りあがるんだけど。

335:デフォルトの名無しさん
08/04/16 08:39:09
>>334
> 新仕様 Common Lisp The 3rd とかあると盛りあがるんだけど。
その仕様にフジコちゃんは入ってますか?

336:デフォルトの名無しさん
08/04/16 10:08:27
不覚にもワラタ


337:デフォルトの名無しさん
08/04/16 10:37:37
Common Lisp は大事なものを盗んでいったんですねわかります!

338:デフォルトの名無しさん
08/04/16 10:41:46
>>337
俺様から怠惰を盗みやがったぜ

339:デフォルトの名無しさん
08/04/16 12:40:05
>>332
別に沢山あっても良いと思うけど、纏まってないといけない理由もないだろうし。
CL専門だったら漏れも登録したいと思うよ。
もしくは逆にテーマを限定してCLOS専門とかねw

340:デフォルトの名無しさん
08/04/16 13:50:47
hatena diaryのweb リングのサービス終了ですか
common lispのグループは便利だった

341:デフォルトの名無しさん
08/04/16 22:26:26
>>339 MOP専門ほしい


342:デフォルトの名無しさん
08/04/16 22:33:29
>>339
同意。グーグルが勝手に拾ってくれるから、必要なのは
Webに書くときには単に Lisp ではなく、ちゃんと Common Lisp と綴ることだと思う。
だれか「CLOSプログラマーのためのJava入門」とか書いてくれたら嬉しいんだけど。

343:デフォルトの名無しさん
08/04/16 22:41:03
俺のサイトはグーグル拾ってくれない…
まあ CLOS の事は書いてないけど

344:デフォルトの名無しさん
08/04/16 22:50:36
>>343
宣伝しなきゃですよ。ここへURLを晒すとか。w

345:デフォルトの名無しさん
08/04/16 23:47:30
>>342
CLOSとJavaて水と油ですやん。書く奴がいるとは思えない。
「CLOSプログラマーのためのC++入門」ならまだ分かる。
両方generic function萌えなので。


346:デフォルトの名無しさん
08/04/16 23:57:33
>>345
generic functionという用語だけ同じでも中身別物じゃんかw

347:デフォルトの名無しさん
08/04/17 00:16:24
いや、まず、CLOSプログラマがCLOSについて書くべきだろw

348:デフォルトの名無しさん
08/04/17 01:52:09
まず↓の絶版状態を解消するのが先決だな。
URLリンク(www.amazon.co.jp)

どっかの出版社タノムぜ

349:デフォルトの名無しさん
08/04/17 01:57:19
>>348
URLリンク(www.fukkan.com)


350:デフォルトの名無しさん
08/04/17 07:42:11
CLOSって何で流行らないのかな
マクロとCLOSってめちゃめちゃ強力な気がするんだけど(まだ勉強中)


351:デフォルトの名無しさん
08/04/17 07:47:50
そう思えるのはS式に抵抗がなくなりつつあるからでしょう。
Lispやる前を思い出してみると、マクロと聞くとCの#defineを想像したり、
大量の括弧をみただけでダメ出ししていたりしませんでしたか?

352:デフォルトの名無しさん
08/04/17 08:28:55
>>350
その前にCL自体を流行らせないと。

353:デフォルトの名無しさん
08/04/17 08:32:15
>>346
二大「特殊化」言語だよ。

コンパイル時か、実行時か
before/after daemon

大きく違うのはこのくらい。

>>350
Common Lispが流行ってませんので…

けどC++にかなり大きな影響与えてる。
C++の方は特殊化に関する部分だけでも、
まだいろいろと拡張を続けてる。
Generic programmingやaspect oriented programmingの
源流の一つだね。

354:デフォルトの名無しさん
08/04/17 08:40:09
>>353
> 大きく違うのはこのくらい。

それに起因して違いがありすぎるだろ。別物じゃねーか。

355:デフォルトの名無しさん
08/04/17 08:47:26
>>345
Java:だいたい全てがオブジェクト,Guy Steel Jr が参加
CL:全てがオブジェクト,Guy Steel Jr が参加

同じだ!JavaとCLはほとんど同じだよ!


356:デフォルトの名無しさん
08/04/17 09:26:25
Javaはガチガチのクラス指向だからなあ。

357:デフォルトの名無しさん
08/04/17 09:52:39
jvmの上で動くCommonLispがあればいいんじゃないか?
コンパイルもバイトコードに落ちるようなの。


358:デフォルトの名無しさん
08/04/17 10:34:44
>>357
Armed Bear Common Lisp (ABCL) が既にあるけど何か?

359:デフォルトの名無しさん
08/04/17 10:46:27
>>358
アンテナ壊れてたよ、ありがと.
週末に試してみる。


360:デフォルトの名無しさん
08/04/17 13:47:15
>>341
そうだね、MOP全般ってのも良いかも。
とりあえず、CLOSの情報が増えさえすれば良いんだし。
CL、Gauche、他にどういうのが対象言語かな。

361:デフォルトの名無しさん
08/04/17 14:09:26
サイトの宣伝していいの?
common lisp  packageで検索してくる人が5人/day
ぐらいのサイトだけど

362:デフォルトの名無しさん
08/04/17 14:22:22
日に5人もCLパッケージで迷える子羊がいるんだなw
ANSI Common Lispでもパッケージの解説は親切でないかもね。

363:デフォルトの名無しさん
08/04/17 15:24:33
パッケージはCLtL2(≒ANSI)で大きく仕様が変わったせいで少し混乱してるね。
CLtL2の記述を見ても、GLSは新しい仕様があまり好きではないのではないかと思える。

364:デフォルトの名無しさん
08/04/17 16:10:10
混乱っていえば、ANSI、cltl1、cltl2の関係も混乱するね。
仕様について言うなら、とりあえずANSI(HyperSpec)を規準にすれば
良いんだろうけど…。
HyperSpec翻訳されないかなあ。
やっぱり、みんなHyperSpecを一番読むわけでしょう?

有志で、オンラインで翻訳しまくるというのはどうか。
もちろん許可がとれれば、だけど…。

365:デフォルトの名無しさん
08/04/17 19:21:58
>>364
とりあえずさっと確認したいときはHyperSpecだね。
じっくり調べるときはCLtL2を開いてGLSの名調子に浸る。w

366:デフォルトの名無しさん
08/04/17 23:14:17
おれ常にHyperSpecしか見てなかったよ
>>364
よく知らないけど、HyperSpecってどこかが権利もってんだよね?
何かまるごとダウンロードしようとして躊躇した記憶がある

367:デフォルトの名無しさん
08/04/17 23:19:36
>>366
丸ごとダウンロードは別に問題ないんじゃないの?
圧縮されたファイルで用意されてるし。

むしろ皆でlispworksに押しかける方が無茶な気がするが。

368:デフォルトの名無しさん
08/04/17 23:29:53
>>366
URLリンク(www.lisp.org)

商用利用しないかぎり複製・再配布は自由。ただし改変は認めない。

みたところ翻訳の可否については明記されていないから、これに関しては
問い合わせてみないとわからないね。

369:デフォルトの名無しさん
08/04/18 00:06:31
そうだ JIS Common Lisp を作ればいいんだ

370:デフォルトの名無しさん
08/04/18 00:46:46
JISか…。
ISLISPってのがあるけど、割と日本が果たした役割は大きかったらしいよ…。

371:デフォルトの名無しさん
08/04/18 02:14:33
ほとんど忘れ去られている悲しい規格だな>ISLISP

372:デフォルトの名無しさん
08/04/18 07:17:00
>>367,368
おお、ありがとう。法律用語の読みかたが自信なかったんだよ。
これで遠慮なくHyperSpecを読みこめるよ!

373:デフォルトの名無しさん
08/04/18 11:31:13
>>369
ECMA Script の JIS みたいに「引用」だけで済まされる、というオチが見える

374:デフォルトの名無しさん
08/04/18 12:12:17
少なくともANSI相当のものが日本語になるんじゃね?

375:デフォルトの名無しさん
08/04/18 13:06:54
いや、何故かISLISPが元になってJIS LISPができそうな気がする

376:デフォルトの名無しさん
08/04/18 13:37:38
>>375
つ JIS X3012

377:デフォルトの名無しさん
08/04/18 14:23:27
どうやら、漏れは過去を予言してしまったようだなw

378:デフォルトの名無しさん
08/04/18 15:53:43
JIS Prolog なんてもっとマイナな感じだな

379:デフォルトの名無しさん
08/04/18 21:17:06
JIS規格文書はJISが権利を持ってることになる。
翻訳が現れることは望ましいけれど、JIS化はあんまりよろしくないと思う。

380:デフォルトの名無しさん
08/04/18 21:25:12
後、誤訳してもJIS的にはそっちが正しいことになっちゃうしな。

381:デフォルトの名無しさん
08/04/18 21:25:42
>>379
無料で閲覧できるようになったのは進歩だけど、印刷はもちろん、検索さえできないのがアカンよね。
海外やISOの規格事情も似たようなもんだけどね。

382:デフォルトの名無しさん
08/04/18 21:33:25
印刷は頑張れば出来るw

383:デフォルトの名無しさん
08/04/18 21:41:25
検索も自分用はOCRソフトで・・・w

384:デフォルトの名無しさん
08/04/18 23:08:46
>>381
印刷禁止フラグは簡単に解除できる。
ム板住人ならみんなやってると思ってた。
ただ、ウェブで見られるPDFは文書をビットマップ画像にしたものを貼り付けてあるので、
検索はOCRを使わないと仕方ない。

385:デフォルトの名無しさん
08/04/18 23:19:04
印刷して使うっていう発想がなかった。

386:デフォルトの名無しさん
08/04/18 23:51:26
ちなみに有料(ダウンロード販売)の規格票もビットマップ画像だよ

387:デフォルトの名無しさん
08/04/19 08:27:47
>>386
検索できないんじゃ紙で売った方がいいよねぇ。
電子化の意味が有体物じゃ無いことだけじゃないか。



388:デフォルトの名無しさん
08/04/20 19:51:05
それが日本クオリティ...なのか?
ANSIの電子化ってどうなんだろうね。

389:デフォルトの名無しさん
08/04/20 20:03:29
>>388
金出せばやるだろ。お役所なんてそんなもんだ。

390:デフォルトの名無しさん
08/04/20 20:08:05
D&Eで規格団体のクソっぷりが書かれてたから、アメリカでも事情は同じだと思う。

391:デフォルトの名無しさん
08/04/21 01:28:05
全部RFCになればいいのに。w

392:デフォルトの名無しさん
08/04/21 02:56:23
>>391
4/1版でマジ切れとか鵜呑みとかの間抜けな人がいるから全部はヤダ


393:デフォルトの名無しさん
08/04/21 20:51:58
clispで型推論が無いのはなんで?

394:デフォルトの名無しさん
08/04/21 21:21:10
型推論のどういうメリットを期待してる?

395:デフォルトの名無しさん
08/04/21 22:36:12
>>394
コンパイルしたときのエラーと
高速化かな

396:デフォルトの名無しさん
08/04/21 23:13:15
>>395
それをインタプリタの clisp に期待するのは何故?

397:デフォルトの名無しさん
08/04/22 00:06:49
>>395
せっかくオープンソースなんだから、君が書き加えてあげれば喜ばれるかもよ

398:デフォルトの名無しさん
08/04/22 01:01:34
・オープンソースの法則
何故か誰も修正しない

399:デフォルトの名無しさん
08/04/22 07:36:31
俺は自分で気付いたものは割と修正するけどな。
わずかな努力で割と多くの人の役に立てる(ソフトのユーザ人口によるけど)。

400:デフォルトの名無しさん
08/04/22 10:08:53
elfやcoff操作するライブラリが欲しいんだけど、どこかにないかな?
binutilからBFD抜き出してライブラリにしてラッパ作った方が早いかな?

401:デフォルトの名無しさん
08/04/23 16:54:38
URLリンク(www.lisp.org)
exampleで
with-open-fileと一緒にdoを使ってるけど
xyzzyの人のサイトではほぼ必ずwhile readline

どっちが推奨なの?

402:デフォルトの名無しさん
08/04/23 17:29:27
xyzzy上のLispではwhileという関数がありますが、Common Lispにはありません。

403:デフォルトの名無しさん
08/04/23 18:00:26
closの使い道がいまひとつわからない

最短時間で(汚く)プログラム組むのに

namespace
分かりやすい名前で defun
map

あたりは使う

すでに組んでしまった汚いコードを無理やり他のプログラムとくっつけるのに
マクロは少し使う

はじめから綺麗に書こうと思わないかぎりclosは使わない?


404:デフォルトの名無しさん
08/04/23 20:16:30
>>401
一言で言えば xyzzy は Common Lisp ではない、というだけ

405:デフォルトの名無しさん
08/04/23 22:29:16
>>402
細かいこと言うと、関数じゃなくてマクロね

406:デフォルトの名無しさん
08/04/23 22:54:07
white(笑)
for(笑)

407:デフォルトの名無しさん
08/04/23 22:58:20
white って何よ

408:デフォルトの名無しさん
08/04/23 23:20:48
>>401
whileの方が簡潔にかけるからwhileがいいんじゃない?
CLだとloopとかdoだけど。馴染みのない人にはdoとか嫌われるしね。
whileはemacs経由でxyzzyに導入されたのかしら。

409:デフォルトの名無しさん
08/04/23 23:35:08
>>403
割と後づけだし、資料が少ないんだよね。
Paul GrahamとかPeter Norvigとか有名な本書いてる人達が
CLOSをプッシュしてないこともあって自著でも
CLOSの解説とかあんまりしてないし、CLOSは何だか不運に感じるなー。

それと、汚く書くってことなら、CLOSは相当なものを書けるとおもうけどw

410:デフォルトの名無しさん
08/04/24 00:12:09
>>409
CLtL2でも他の章はGLSの蘊蓄炸裂なのに、CLOSのとこはANSI原案丸写しという感じで
やる気が感じられないよね。

411:デフォルトの名無しさん
08/04/24 07:37:48
おれも素人だけど、
・いろいろ状態を持ってるオブジェクトっぽい何かがある時
・既存のライブラリがclosで出来てる時
・似たようなプログラムが沢山できそうな時
はclos使おうと思うなぁ。

schemeの話だったかもだけど、shiroさんがある規模より大きくなったら
オブジェクト指向を使いたくなる、みたいなこと書いてなかったかな?

412:デフォルトの名無しさん
08/04/24 08:24:44
>>411
> ・既存のライブラリがclosで出来てる時
おれはこの時だけ使いたくなるなぁ。
Allegroみたいな商用だとclos使ったライブラリ揃ってるっぽいけど、
普段あんまり見かけないから相対的に出番が少なくなるよね。

413:デフォルトの名無しさん
08/04/24 09:10:01
clos使わないと混乱するほど巨大な物書いたこと無いから正直使い処がわからんです。


414:デフォルトの名無しさん
08/04/24 10:12:26
うーん、CLはマルチパラダイム言語なわけで、
CLOSはそのうちの一つのパラダイムな訳だから、
規模云々より単に手法の一つだと思うんだけど…。
小さい規模でも綺麗にまとまってるのも沢山あると思うよ。
身近な例で言えばASDFとかどうだろう。

415:デフォルトの名無しさん
08/04/24 14:34:26
CLOSがあまり使われないのは、
基本関数のスタイルとCLOSのスタイルがちょっと違うからかも。
CLOSセントリックに書き直したLisp方言も面白そう。


416:デフォルトの名無しさん
08/04/24 14:42:00
とりあえず defstruct よりは defclass かな、という程度だね。
typecase でディスパッチするよりは defmethod を使うという感じ。
defun をやめて、すべて defmethod を使うというスタイルにはなれないな。

ま、便利なときだけ使えばいいんじゃね?

417:デフォルトの名無しさん
08/04/24 15:58:33
lambda式直使いとmulti dispatchの相性が悪い。

418:デフォルトの名無しさん
08/04/24 19:01:22
そうなの? どういう局面で?
無名総称関数はANSI仕様から消えちゃったけど、それのこと?

419:デフォルトの名無しさん
08/04/28 00:15:31
なんか急に流れが止まったな
>>414
へー、asdfってCLOS使ってるんだね。参考になった。
>>412
おれはこの前AllegroのSAXライブラリ使ったよ。
allegroserve もCLOSの例として面白いかも。

思い付きだけど、
がちがちに仕様が決まっているものを実装するときCLOSを使うといい、
という説はどう?

420:デフォルトの名無しさん
08/04/29 01:23:58
どうだろう…。
個人的にはガチガチに仕様が決まったようなプロジェクトでも
Lispがバンバン採用されるようになることを祈りたいw

421:デフォルトの名無しさん
08/04/30 06:12:32
sbclをアンインストールする方法はないでしょうか?
finkを導入した所リストの中にsbclが有りそちらで一括管理したいので
サイトから直接ダウンロード&インストールしたsbclをアンインストールする方法を
教えていただけないでしょうか?
よろしくお願いします

422:デフォルトの名無しさん
08/04/30 07:36:14
漏れが確認したところでは、特にアンインストールのスクリプトはないみたい。
なので、手動で削除する他ないのかな?
といっても/usr/local/lib/sbclと/usr/local/bin/sbclを削除するだけのような
気もするけど…。
単純にパスの設定を/usr/local/より/sw/の方を前にもってくるとかじゃ駄目なのでしょうか。

423:デフォルトの名無しさん
08/04/30 08:15:10
別にlispに限った話じゃないけど、自分でインストールするなら
インストールのログくらい取っておけよと思う。

424:デフォルトの名無しさん
08/04/30 08:52:30
>>423
まあ、その辺りがUNIX文化とWin/Mac文化の違いというところでは?
アンインストーラを使わずに
適当に実行ファイルを消したらシステムの整合性が崩れて
面倒ことになる、と思ったのかもしれないし。


425:デフォルトの名無しさん
08/04/30 17:16:51
>>422
ありがとうございます。
コマンドラインから検索した所
そのフォルダがヒットしましたので削除したいと思います。

>>423
今後そうしたいと思います。
精進いたします。

>>424
やはりその不安が有ったのです。
今後プログラミングの学習はマスターできるまで
仮想のlinux上でやりたいと思います。

426:421
08/04/30 17:28:37
/usr/local/share/man/man1/sbcl.1
というディレクトリが有るのですがこれの
man1というディレクトリはシステムのフォルダですか?
それともインストール時に自動的に作成されるものですか?
よろしくお願いします


427:デフォルトの名無しさん
08/04/30 17:36:26
finkうんぬんとあったからMac OS Xなの?
UNIXでもその辺は全部一緒じゃないんだよな。

Mac OS Xの場合、Mac OS Xは/usr/localを使わない。
どのパッケージがどのディレクトリを使っているかは、
/Library/Reciepts/*/Archive.bomをlsbomすれば分かる。
ただし、Mac OS Xの場合、サードパーティの配布は、
pkg形式使ってないことが多いから、
ファイルの追跡は諦めるしかないと思う。

SolarisやLinux(rpm, deb)のバイナリーパッケージは、
そういうの追いかけるの得意なんだけど。


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