Lisp@UNIX版

1名無しさん@お腹いっぱい。
垢版 |
NGNG
なんだかんだ言って,ホントはみんなLispが好きなんだろ?(藁)
というわけで,語ろうや.

プログラム技術板のLisp Schemeスレ
http://pc.2ch.net/test/read.cgi/tech/1016211619/
355名無しさん@お腹いっぱい。
垢版 |
NGNG
このスレ見てる中にscsh使ってる香具師って居るかな?
Schemer且つUnixerなら居てもおかしくない気はするが…
NGNG
>>355
shell script としてなら使えるけど
login shell としてはちょっと使えないよな
NGNG
だいぶ前にちょっと入れてみて、でかさに萎えた覚えがあるが…
NGNG
>>356
http://www-internal.alphanet.ch/~schinz/scsh-faq/scsh-faq_4.html#SEC33

> Well, technically you can: just run the "scsh" command and you will
> enter a Scheme 48 session with all scsh functions available. However,
> this is definitely not suitable for interactive work: there is no
> command-line editing, no command-line history, no file/function name
> completion, no terse syntax, etc. All these features are planned, and
> Olin has a design for much of them. However, nobody found the time to
> implement them yet.

interactive に使うものではないらしいよ。
NGNG
4.6 Can I use scsh as an interactive shell?

あ、>>358 はこの質問の答え。
NGNG
clisp をログインシェルに. http://clisp.cons.org/clash.html
…やってるやついるんか?これ?
NGNG
http://hobby4.2ch.net/car/
http://pc3.2ch.net/cdr/
NGNG
こんなのもある
http://lush.sourceforge.net/

NGNG
lush 使ってるの?使ってる香具師見たこと無いんだけど…。
http://ecls.sourceforge.net/
なら少しは見たことあるが。
NGNG
sage
365名無しさん@お腹いっぱい。
垢版 |
NGNG
age
366名無しさん@お腹いっぱい。
垢版 |
NGNG
よく、emacsやsawfishなどLISPで実装されているアプリケーションは拡張性が
高いと述べられますが、
これは、pythonやrubyあたりで実装してあるプログラムなどと比較しても
やはり高いものなの?
その辺の根拠を後学のためにお教えいただきたい。
NGNG
処理系というか開発環境込みってのが普通だからじゃねーの?
elisp とか librep とかは lisp 的にはダメポだけど…

まぁ漏前が Python 使いや Ruby 使いならば LISP で作られた
ものより Python や Ruby で作られたもののほうが拡張性が
高いだろう。
NGNG
RubyでもEmacsと同じことが出来ますよ、基本的には。
1. Rubyでエディタを作る。
2. 外部から与えられたRubyのプログラムを素直に実行する機能をつける。
(エディタを走らせている当のRubyインタプリタ上で評価する)
これだけ。
elispはいわゆるマクロ言語ではなく、Emacsにコードを追加しているに等しいの
です。

CやC++で実装され言語処理系を内蔵しないエディタでも、マシン語を与えられて
同一プロセス内で実行する手段を提供してあれば同様に拡張性が高いと言えるかも
(誰が拡張するんだ、って感じですが)
NGNG
Lisp は詳しくないけど、組み込み言語に Lisp が多く使われているのは、
こんな理由?

1. 実装が比較的簡単 -- sexp
2. 実装を小さく出来る -- 1 と 5 から
3. 実装例が沢山ある -- プログラマなら一度は Lisp もどきを作るとか・・・
4. 表現力が高い -- sexp
5. 拡張しやすい -- macro
6. 言語として枯れている

もちろん言語としての素性も良いし。emacs に関しては、Lisp がエディタを
(絶対的に)必要とするっていう理由もあるかも。
NGNG
簡単な実装は簡単に作れるが しかし本当に使いモノになる処理系を作るのはやっぱ
り難しい。言語的にはお手軽スクリプト用から高性能コンパイラまでカバーしてるけ
ど手軽に作れるのはやっぱり簡易的な処理系だよ。下は↓ム板より転載。

| 133 名前: Greenblatt 投稿日: 03/08/19 21:55
| どこかのハッカーが、どこかのマシンにしがみついて二週間ばかりがんばって LISP を書き、
| 「見てくれ、LISP をものにしたぞ」という。そんなことが何度だってあるだろうさ。だけど、
| それと本当に使い物になるシステムとの間には天地ほどの差があるんだよ。
NGNG
ごく一般的に言って、簡単に作ればそれなりのもの、
徹底的に作ればそれなりのもの、ができるのはあたりまえですな。

んで Lisp、scheme はとくに言語の核を小さく簡単に実装できる
っつーハナシですな。
Lisper、schemer 名乗る上で、そこを抑えているかが本質的な
違いになるわけで。

emacs が lisp である理由のごく一部には AI ラボの残留思念(怨念?)
も感じますな。
NGNG
Lisp の *実用的な処理系* を他の言語と比較して特別簡単につくれるとは思えないがな…。
言語の核が小さいからっては Scheme くらいのを小さいっていってるのかな?
それとも eval, cons, car, cdr ... 程度の話か?
どっちにしても俺のミニマリスト的な部分は Forth のが小さいしシンプルだと告げている。

少なくとも俺は小さいからとか処理系が簡単に実装できるから云々はどーでもいい。
そこそこの性能とマクロとか使って言語仕様をカスタマイズ可能なところが Lisp の魅力。
関数型でもオブジェクト指向でもどっちも OK みたいなマルチパラダイムなところとか
なんでもアリ的な怪しさも好きだ。
NGNG
どうして言語系のスレにはハナシの流れを汲めない香具師が多いんだろう
言語障害?w
NGNG
ANS Forth の仕様書って読んだ事無いけど、R5RS くらいシンプルで
しっかりしてるの?
NGNG
FreeBSD の bootloader も Forth でしたな。謎だ。
loader.4th っていうエクステンションはふつうなの?
NGNG
>>375
なんで?容量その他制限がキツイんだから forth 使うんだろ。
FreeBSD 以外でも Mac 方面の OpenFirmware とか forth だった記憶アリ。
そんなとこで ruby だの perl だの lisp だのを使うほうが珍しい。
NGNG
C でハードコーティングしといてもそれまででと思ったので。
NGNG
保守
NGNG
SPARC マシンの OpenBoot も Forth だね。
380名無しさん@お腹いっぱい。
垢版 |
NGNG
そういゑば、UNIX 板にも Lisp スレがあったんだね。自分はマクロの
使い方も分からないけど。

Scheme と Common Lisp のマクロって似た様な感じですか?
NGNG
scheme のは,はじめはめんくらう.
なれるとウマー
NGNG
Scheme の syntax-rules は、単純なのはきれいに書けるよね。
でも、複雑なのがかなり書きにくい気がする。
defmacro に慣れてるせいもあるんだろうけど…
NGNG
R5RS の letrec の定義は激しく…萎える。

某所、復活してる。
NGNG
以前,syntax-rules を使って,例えば六っつの引数を伴うと
(+ 1 1 1 1 1 1 ) ってのに置きかえる,引数数え上げマクロを
作ったんだけど,これって関数定義内とかに使うと 6 って定数だと
解釈されてコンパイルされるんか,それともあくまで
(+ 1 1 1 1 1 1 )をやってんだかどっちだろうな Gauche

macroexpand したら (+ 1 1 1 1 1 1) になってたが,こういう最適化は
コンパイラの仕事だろうから,macroexpand ではチェックした事には
ならんだろうからなぁ…

define-macro を素直につかうべき?

NGNG
syntax-case
NGNG
Gaucheはそういう最適化はしないよ。

> (use gauche.vm.disasm)
> (disasm (lambda () (+ 1 1 1 1 1 1)))
PRE-TAIL(6) ;; (+ 1 1 1 1 1 1)
PUSHI(1)
PUSHI(1)
PUSHI(1)
PUSHI(1)
PUSHI(1)
PUSHI(1)
GREF #<id 0x10342400 user::+>
TAIL-CALL(6)
RET

値がなくなる形で最適化されるのは、値が
捨てられるコンテキストでの定数が削除される
くらいじゃないかしら。
(たとえば(begin 1 2)の1みたいなやつ。)
NGNG
>>384
+ が再定義されるかもしれんから
NGNG
(let ((+ +)) ...)
しておけば再定義は気にしなくていい
NGNG
その let の範囲は全部調べないといけないけどね。
途中で set! するようなこともできるから。

(let ((plus +))
(define (inc x) (plus x 1))
(let* ((one 1)
(two (inc one)))
(set! plus -)
(let ((three (inc two)))
(list one two three))))
=> (1 2 1)

みたいな。
NGNG
disasmおもちろーい
NGNG
M-expression
っていうのが結局何なのか分からんのだけれども、
誰か簡単に説明してくんない?
NGNG
ちなみに
http://en.wikipedia.org/wiki/M-expression
NGNG
ttp://squab.no-ip.com:8080/wiki/435
NGNG
>>393
thank[you]
NGNG
syntax-case とか fluid-syntax を試してみたいんですけど,
実装してる処理系ありますか?

NGNG
>>395
slibに入ってるよ。
http://swissnet.ai.mit.edu/~jaffer/SLIB.html
397名無しさん@お腹いっぱい。
垢版 |
05/01/29 23:57:48
schemeについての質問なんですけど、ある関数に引数を一つまたは2つとる関数を作りたいんですけど、どうやればいいですか?
例えばある関数fを定義して、
(f 4)
(f 3 5)
と入力すると前者の場合は引数1つの時の定義で動き
後者の場合は引数2つのときの定義で動くようにしたいんです。
05/01/30 00:13:40
UNIX板で訊く必然性がないなあ。ここで訊くよりム板の方がいいんじゃない。
(define (f arg1 . restargs)
...)
とやれば2個目以上の引数のリストがrestargsに入る。
05/01/30 01:30:32
(あれば) case-lambda を使うのが楽。

(define f (case-lambda ((a) 'one-arg) ((a b) 'two-args)))
05/01/30 04:55:19
UNIXは言語じゃない。Lispも言語じゃない。
401名無しさん@お腹いっぱい。
垢版 |
05/02/20 06:17:23
lispworksに慣れていらっしゃる方います?
05/02/23 00:45:44
何が聞きたい?
403伍長
垢版 |
2005/03/21(月) 21:08:45
すんません新人です
404伍長
垢版 |
2005/03/21(月) 21:09:44
誰かあの時のこと知ってるひといませんか?

405伍長
垢版 |
2005/03/21(月) 21:12:30
崩壊の時の事
406伍長
垢版 |
2005/03/21(月) 21:13:15
知ってる人いたらきかせてください
407伍長
垢版 |
2005/03/21(月) 21:18:11
(誰もいないのか・・・)
2005/03/21(月) 21:50:35
(・∀・)ニヤニヤ
2005/03/24(木) 10:05:11
scheme の処理系何がおすすめ?
2005/03/24(木) 11:19:43
目的とか使い手の特性とかは書かないの?
2005/03/24(木) 12:10:03
>>410
とりあえず, scheme ってどんなもん?
Lisp との違いは?
ってな, 感じがつかめればいいかと...
つか, 各処理系の特徴をまとめたサイトってないっすか?
412名無しさん@お腹いっぱい。
垢版 |
2005/03/27(日) 11:16:20
日本語だったら、ここが一番詳しいんじゃないかな

http://www.sci.toyama-u.ac.jp/~iwao/Scheme/scheme.html
2005/09/23(金) 05:39:42
SBCL はマルチスレッド、マルチバイト文字、マルチプラットフォーム対応と、大分良くなって来たね。
2005/10/09(日) 10:22:44
Lisp は頭のいい人向けの言語だと思いマスタ

明示的に return を書かないから、何処から何が return されるのか良く分からん
  -- 再帰の中とか、and/or の返り値が論理値じゃなくデータなのをそのまま使ってたり
変数に型が無いから、関数の引数に何を渡していいか良く分からん
  -- 引数をそのまま別の関数に渡してたり、引数の数が多かったりすると付いてけない
構造体の make-xx とか、勝手に関数が定義されるから仕様が分かってないと意味不明
2005/10/09(日) 10:23:35
λ... セミコロン付け忘れた...
2005/10/09(日) 13:39:09
まぁ,やる気のなさが伝わってくる文章ではあるが,そゆ人が好む言語って
なにかなーというのに興味がある.何なら使えるの? Python とか?
2005/10/09(日) 13:59:00
>>416
>まぁ,やる気のなさが伝わってくる文章ではあるが,

そうか、スマソ...
2005/10/09(日) 14:34:43
てゆうかその愚痴からだけでは Emacs Lisp なのか Common Lisp なのかすら区別できねー
論理値が使いたいなら #t/#f のある Scheme のほうが好みにはあってそうだが return
みたいに手続き型っぽくしたいなら elisp とか Common Lisp かねぇ
2005/10/09(日) 17:02:49
Common Lisp 勉強中なんだけど、初心を忘れない様にメモしてマスタ
誰もいないと思ってたんで...
2005/10/09(日) 20:35:47
戻り値には明示的にreturnを書かないといけないという条件をつけると、
かなり多くの言語が使えなくなるな……。
2005/10/09(日) 20:50:24
まぁがんばれ。今時 Lisp を学ぼうにも導師を探すのも苦労するだろう。
静的型マンセーのこんな世の中じゃぁ,ML 系のほうが学校とかでも多いかもしれねぇ。
スクリプト言語もいっぱいあるしな。Lisp にしたってアカデミックな連中にゃ
Scheme のほうが人気だし,この御時世あえて Common Lisp なんて酔狂な奴じゃねーか。
困ったことがあったら相談にのるぜ。
2005/10/11(火) 23:59:01
CommonLispなら
> 引数の数が多かったりすると
てのは (place-trojan :on-host "www.microsoft.com") てな感じで名前つけられるので
そんなに問題ないんじゃないかなぁとか。
2005/10/29(土) 04:32:54
今時って言っても、ここ何年かで Common Lisp まわりの環境はずいぶんよく
なってるよ。ポール・グレアムのコラム以降、第何次だかの Common Lisp
ブームだし。

昔 KCL を inferior-lisp で動かしてイマイチって思った人も SBCL + SLIME
を使えばかなり印象が変わると思う。
2005/10/29(土) 05:48:50
世の中で実働してるlispの何割がemacsですか?
2005/10/29(土) 07:17:34
99% 以上が ECMAScript で、残りを python > elisp > scheme > common lisp
で分けあう感じ。
2005/10/30(日) 03:30:37
>>425
実働しているシステムとしては Common Lisp のほうが Scheme より多いだろ.
某国の軍隊だの某国のロボット企業だの….学生の趣味なら Scheme のほうが
多いのは認めるが.
2005/10/30(日) 05:31:36
教育は実働じゃないとでも?
コンピュータプログラミングというものを学ぶ道具として
毎年新たに数万人が使ってるのが Scheme だろ。
2005/10/30(日) 11:43:03
実働とは言わないだろ。
それで書かれたシステムが稼働するわけじゃないんだから。
2005/10/30(日) 16:04:22
Scheme 処理系のほとんどは Scheme と C で書かれてるよ。

ただ、Scheme で書かれたシステムで広く配布されてるてるのは Scheme 処理
系くらいしか無く、教育・研究といったニッチから抜け出せてないってのも事
実。

それで書かれたシステムの
動いてる数では Scheme > Common Lisp
種類の豊富さでは Common Lisp > Scheme
それで飯食ってる人数は Common Lisp > Scheme

こんな感じかな。
2005/10/30(日) 23:42:21
世の中で実際に使われている例を出せといわれて,教育用途で使われている!!
と答えるのは…ちょっとズレているような木ガス
2005/10/31(月) 13:25:05
教育用システムで使われてるって意味だと思ってたけど、
教育するときに教材として使うって意味なの?
432名無しさん@お腹いっぱい。
垢版 |
2006/01/18(水) 03:08:38
SBCLがwindowsで動くようになってUNIXの価値が暴落した昨今
イカがお過ごしですか
2006/01/18(水) 04:24:35
こんなとこで煽ってる暇があるなら win32 で通らないテストが
一つでも減るよう #lisp 来て開発手伝えよ
2006/01/18(水) 09:07:52
まぁ、Windows "でも" 動くようになるってのは悪い事じゃないよ。
パッチを送ったり、ライブラリを作る人が増えるのは良い事だ。

今でも Linux か Mac な人ばかりだから、暴落するまでもないけどね。
435名無しさん@お腹いっぱい。
垢版 |
2006/01/24(火) 21:58:29
どっかに continuation の各種実装方式あたりを集めてあるサイト
ありませんかぁ???
2006/01/24(火) 22:15:40
gauche の作者の人が ML か何かで書いてた様な。
スレッドを使うのとか、コピーするタイミングとか。

ム板の Common Lisp Scheme スレに行った方が
解答が集まると思うよ。
2006/01/24(火) 22:18:06
>>436
あい!そうしてみます。
2006/05/25(木) 08:04:21
lambda perl age
439名無しさん@お腹いっぱい。
垢版 |
2006/05/27(土) 21:43:36
lisper集まれ!
navi2chがぴんち
2006/05/27(土) 23:46:33
>>435
論文読んだ方が早いお
441名無しさん@お腹いっぱい。
垢版 |
2006/06/04(日) 15:04:43
日本語翻訳されたelisp-introってありますか?
2006/06/04(日) 15:34:43
ttp://www.bookshelf.jp/ にあるよ
2006/06/04(日) 19:52:33
>>442
thx.
2006/06/04(日) 21:52:51
444
445名無しさん@お腹いっぱい。
垢版 |
2006/12/02(土) 08:19:44
sbcl 1.0 release age
446名無しさん@お腹いっぱい。
垢版 |
2006/12/02(土) 11:29:12
LISPは所詮、リスト処理だけを行う仮想マシンの為のアセンブラ
のようなものである。そのため、直接LISPのS式でプログラミングを
人間がするのは、簡単なプログラムならまだしも、巨大なシステム
を直接にLISPで作ることは人間の無駄遣いだと思う。
2006/12/02(土) 19:45:30
とりあえず>>446がLispを知らないことだけは読み取れた
448名無しさん@お腹いっぱい。
垢版 |
2006/12/02(土) 22:30:57
>>446 世界最大の航空券販売予約サイトがLISPで作られたいたんだよ?
国内企業でもNTTやホンダ等に使用されているけど?
http://jp.franz.com/base/success_main.html
2006/12/03(日) 03:57:16
>>446の伝でいくと関数型もオブジェクト指向もできるスーパーマクロアセンブラになっちゃうべ
450名無しさん@お腹いっぱい。
垢版 |
2006/12/03(日) 08:23:39
最終的には、プログラマという職業自体が人間の無駄遣いだがな。
2006/12/03(日) 12:54:48
2ちゃんねらー程ではないな
452名無しさん@お腹いっぱい。
垢版 |
2006/12/03(日) 12:55:59
>>448
一瞬「作られタイタン」って読んでしまったorz
よく見たら「作られたいたん」か。
2006/12/03(日) 13:17:55
作られた異端
2006/12/03(日) 14:43:56
請けた仕事をLispで実装しちゃう香具師が異端なのには同意
2006/12/03(日) 17:17:03
なぜ?
要求仕様を満たした上でLispでの実装が楽ならLisp使えばいいし
その他の言語での実装が楽ならその言語使えばいいだけの問題っしょ?
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況