Lisp@UNIX版

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

プログラム技術板のLisp Schemeスレ
http://pc.2ch.net/test/read.cgi/tech/1016211619/
NGNG
引用の仕組みと、構文と関数の区別ができれば、あと覚えることって
ライブラリの関数の使い方程度じゃないかな。
構文はマクロを理解すれば、構造的にはなんでもありなんだ、
って事がわかる。

括弧が嫌だっていう人にしても、いきなり他の言語に移る前に、
自分で適当な文法のトランスレータ作ってそれ経由で使ってみればいい。
S式が必要になったらreadするだけ。
いつまでも括弧に埋もれながらコード書いてく必要なんてない。
でも、こういうのWeb上とかで公開してる人ってあんまりいないんだよな。
NGNG
Lispのインタプリタに興味があるのですが、
何か良い資料ありませんか?
NGNG
検索すりゃ色々出てくると思うけど
NGNG
まぁ色々あるとは思いますが、
定番の書籍とか、このページが詳しいとか
あれば教えてくださいってことです。
NGNG
>>269 しかし現実では XML な罠。265 は Franz の XML パーサでも使え。
NGNG
Common Lisp だと ANSI Common Lisp の日本語訳が出たし、

Scheme だと
http://www.stdio.h.kyoto-u.ac.jp/~hioki/gairon-enshuu/SchemeNotes/scheme.html
http://yam.s4.xrea.com/

Emacs Lispはライブラリの使い方が中心だから、いい例が出せないです。
NGNG
>>273
アーカイブって雑誌のバックナンバーが手にはいるなら、1-5号を読んで
見るといい。P
入門レベルでいいなら、 Lisp 1.5 Programmer's Manual って本に、
超簡単なのがある(GCなし)。これを理解するのは容易なのでまず
これで概要を理解してから、本格的なのに進むべし。
NGNG
インタープリタの作り方なのか、
インタープリタの使い方なのか?
NGNG
おれもアーカイブの記事で勉強したな。
その前はマイコンピュータ#15とかだった。
NGNG
まだ持ってるよ。クリ○○ス
ツリーの表紙のやつだよね。
280271
垢版 |
NGNG
レスどうも。
>>277 作り方です。

>>276
Lisp 1.5 Programmer's Manual
http://www.amazon.co.jp/exec/obidos/ASIN/0262130114/ref=sr_aps_eb_/249-3867939-4273907
これはLispの原典なのですかね

アーカイブってのが見つからないです。
http://www.jdaa.gr.jp/idaset/back_01.htm
これじゃないですよね?
NGNG
アーカイブはたぶん図書館に行くか
持ってる人に見せてもらうかしかないと思う。

「アーカイブ」(インターフェース増刊)
1986年くらいだっけ?
NGNG
つまらんことを聞くんだが
リトルスキーマー
ってまだうってる?
NGNG
Scheme手習いは絶版だと思うが。
NGNG
sawfish のインタープリタに使われてる
rep を使ってる人いますか?
emacs 方言を使える scheme という感じで、
正規表現も持ってるみたい。
285名無しさん@お腹いっぱい。
垢版 |
NGNG
もーすぐ cmucl 18e あげ
286名無しさん@お腹いっぱい。
垢版 |
NGNG
MIT-schemeやcmuclみたいに、大学の名前がそのまま使われた
処理系があると、そこに通ってる学生にとっては結構名誉な事だよね。
たぶん。
日本ではKCL(京大)ぐらい?
NGNG
UTI-Lispとかhclとかは?
NGNG
作成に参加したならともかく、百歩譲って所属している研究室のプロジェクトならともかく、
通ってるだけで名誉ってのはないでしょう。
NGNG
>>287
メンテされてないっぽいじゃん。
そういや、GCL(KCL)ってまだ健在ですか?
NGNG
>>289
GCL、すこし前にいじってコンパイル通してみたころから変わってなければ、OS依存関係とかのファイルが腐ってて、そのままじゃコンパイル通らないケース多そう。*BSDはたぶん全滅なんじゃないかと思います。
たとえば、BSDならa.outだと思ってる...これって、BSDかLinuxか、じゃなくて、BSDかSYS/Vか、のころからたいして手が入ってないのでしょう。
Linuxなら、たぶんなにも考えなくても大丈夫だと思います。*BSDで動くようにするのは簡単ですけど、MLでえらい人がautoconfとかちゃんと使うようにしたい、とか言ってたと思うけど、どうなったんだろう。

なんでも、メインのメインテナーの方がお亡くなりになったとかで、一時期混乱があったみたいですが。

NGNG
>>289
元々gclはmaximaという数式処理システムのプラットホームとして
テキサス大学のBill William Schelterが開発していたわけだけど、
Billは一昨年の夏にロシアであぼーんしてしまったのね。
maximaはその後も開発が続いて、最近5.9.0が出たけど、
プラットホームはgclだけではなくなり、cmuclやclispの上でも動くようになった。

今だにCLtL1なgclには存在意義はなくなった……かも知れないけど、
Camm Maguire(Debianでmaximaのメインテナーしてる人)が引き取って
開発は続いている。
そういうわけで、Debianでmaximaを使うと、

$ maxima
GCL (GNU Common Lisp) (2.5.2) Thu Mar 20 10:36:35 EST 2003
Licensed under GNU Library General Public License
Dedicated to the memory of W. Schelter

Use (help) to get some basic information on how to use GCL.
Maxima 5.9.0 http://maxima.sourceforge.net
Distributed under the GNU Public License. See the file COPYING.
Dedicated to the memory of William Schelter.
This is a development version of Maxima. The function bug_report()
provides bug reporting information.

Billとはメールのやり取りだけだったけど悲しい。
292名無しさん@お腹いっぱい。
垢版 |
NGNG
lispを組みこんだ炊飯器を出してくれんかのぉ。
炊き上った後、自動的に保温になってしまうのをカスタマイズしたいんじゃが。
NGNG
じゃあ、どんな動作を望む?
NGNG
酢飯にして冷ましてくれるモードとか。
NGNG
ス飯の状態を入力すると、そこにいたるまでの
手順を自動的に合成してくれるとか?
NGNG
「S飯」か。
NGNG
>>296
( とか ) が歯の間に挟まりそうでいやじゃ!
NGNG
のどに ( とか ) が刺さった時は
ごはんをかまずに飲むといいよ。
299名無しさん@お腹いっぱい。
垢版 |
NGNG
おまいら ( とか ) 食べないでください。
あれは鑑賞するものです。
NGNG
しっずかっなごっはんっのもっりのかげっからっ♪
301山崎13
垢版 |
NGNG
http://pc.2ch.net/test/read.cgi/linux/1048474667/l50
よろしく!!




302名無しさん@お腹いっぱい。
垢版 |
NGNG
>>293
炊き上ったら、そのままスイッチを
切るモードを追加したいんじゃ。

数時間の保温って再び飯炊くのと
同じぐらいの電気を消費するらしいから。
NGNG
そういう炊飯器を買え!
うちのはそうだ。
NGNG
なんだ、そういう炊飯器あるのか。
NGNG
家電板行け
NGNG
Lisp 組み込み彼女キボンヌ
NGNG
>>302
add-hook
NGNG
そういえば add-hook って ad hoc にかけてるのかな。
309名無しさん@お腹いっぱい。
垢版 |
NGNG
>>286
2ch-Schemeとか2ch-CLでも作れば?
310あぼーん
垢版 |
NGNG
あぼーん
311名無しさん@お腹いっぱい。
垢版 |
NGNG
>>309
単にシンボル名を置き換えるだけで出来ちゃうっぽいよ。

car => キボンヌ
cdr => プ
nil => ヌルポ
cons => マターリ
eval => ジサクジエン
apply => ヤラナイカ

(プ '(香具師)) =>ヌルポ
(キボンヌ '(神)) =>神

(マターリ 'ゴルァ ヌルポ) =>(ゴルァ)
312名無しさん@お腹いっぱい。
垢版 |
NGNG
t => ガッ
null? => ヌルポ?

(ヌルポ? ヌルポ)
=>ガッ
NGNG
違法サイト潰しから復讐、縁談破壊等々
何でもやらります!できないことはありません!!

悩んでいるアナタ!是非お電話ください。
必ず、お力になりますよ。 お電話ください!
全てお任せください! やってみせます!!

便利屋Cat’s Hand
http://www.cats-hand.sytes.net/
070−5459−7083
NGNG
>>311,312
笑えるな。
もっと面白く意味があるようにできないかな。
NGNG
結婚 夫 妻 独身 戸籍調査
NGNG
(ホシュ)
317名無しさん@お腹いっぱい。
垢版 |
NGNG
cmucl 18e 記念アゲ
318山崎渉
垢版 |
NGNG
(^^)
NGNG
>>318
おまいさんも Lisper だったのか。
320名無しさん@お腹いっぱい。
垢版 |
NGNG
嵐カキコミにレス付けるなよ
NGNG
>>291 ゴマキ様お久しぶり
322あぼーん
垢版 |
NGNG
あぼーん
NGNG
cmucl カレント追っかけてる人居ますか?なんか、新しくウプされたバイナリ
で clocc がビルドできないんすけど…。保守も兼ねてアゲ
324名無しさん@お腹いっぱい。
垢版 |
NGNG
325あぼーん
垢版 |
NGNG
あぼーん
NGNG
ちんこ nul nul po
327名無しさん@お腹いっぱい。
垢版 |
NGNG
わぁ
328あぼーん
垢版 |
NGNG
あぼーん
329名無しさん@お腹いっぱい。
垢版 |
NGNG
age
NGNG
静かなごはんの森の影から
起きてはいかが?と郭公が鳴く
郭公、郭公、郭公郭公郭公
NGNG
なんか、大分さがってるけど質問してみます。

↓この test って関数を append を使わないで再帰で書くにはどうしたらいいですか?
(defun test (list1 list2)
(let (list)
(while list1
(let ((list3 list2))
(while list3
(setq list (cons (concat (car list1) (car list3)) list))
(setq list3 (cdr list3))))
(setq list1 (cdr list1)))
(nreverse list)))

append を使えば↓な感じでいけるんですが。。。
(defun test1 (list1 list2)
(if list1
(append (test2 (car list1) list2)
(test1 (cdr list1) list2))))

(defun test2 (str list)
(if list
(cons (concat str (car list))
(test2 str (cdr list)))))

lisp 初心者に愛の手を。。。
NGNG
どうして append 使わないで再帰で書きたいのかも教えてほしいけど…
とりあえず、その条件だけならこんな感じでいけそう。

(defun test (list1 list2)
(test1 list1 list2 ()))

(defun test1 (l1 l2 lst)
(if (null l1) (nreverse lst)
(test1 (cdr l1) l2
(test2 (car l1) l2 lst))))

(defun test2 (s l r)
(if (null l) r
(test2 s (cdr l) (cons (concat s (car l)) r))))
NGNG
>>331 見た感じ elisp だな.

(defun my-test2 (lst1 lst2)
(my-test2-aux lst1 lst2 nil))
(defun my-test2-aux (lst1 lst2 acc)
(if (null lst1)
(nreverse acc)
(my-test2-aux (cdr lst1) lst2
(my-test2-aux2 (car lst1) lst2 acc))))
(defun my-test2-aux2 (e lst acc)
(if (null lst)
acc
(my-test2-aux2 e (cdr lst) (cons (concat e (car lst)) acc))))

↓どう考えてもこっちのが効率的だとおもうが,なんで再帰でやりたいんだ??
(defun my-test3 (lst1 lst2)
(let (acc)
(dolist (e1 lst1 (nreverse acc))
(dolist (e2 lst2)
(push (concat e1 e2) acc)))))
334333
垢版 |
NGNG
激しくかぶった…鬱だ
335332
垢版 |
NGNG
>>332,333
普段はあまり再帰とか意識しないで作ってるんで再帰したらどうなるのかなーって思っ
て。
んで、なんとなく append を使わないで書いてみたくなったんですが、うまい書き方が
思い浮かばなかったんで聞いてみました。

最初に作ったのは、>>333 さんの後ろのやつと同じ感じになってました。

ありがとうございますです。
336あぼーん
垢版 |
NGNG
あぼーん
NGNG
大物LisperのPaul Grahamが自分のサイトで配っている著書On Lispを邦訳して公開しています.
ただしまだ1-7章のみです.しかも今は期末試験前半中なので作業再開は8月入ってからになります.
ttp://user.ecc.u-tokyo.ac.jp/~g340299/onlisp_j.{dvi,pdf,tex}.bz2
こないだム板とマ板のLisp擦れに告知したら著作権関係をクリアにしろとのお叱りを頂いたので,
しばらく取り止めていましたが,

It's fine with me if you want to put a Japanese translation
online.  I doubt the new publishers will issue a Japanese
version.  --pg

とのことなので,再開しました.
私はまだWizard Bookも読んだことのない廚ですので,
「ここ違ってるぞモルァ」とかあったら是非知らせて下さい.
非公式Texinfo版があるとも教わったので翻訳が終わったらTexinfo形式も考えます.

# ここで3个所目のマルチポストですがご勘弁.今だけです.
NGNG
>>337 おっ、ちゃんとメールしたんだ。おつかれです。期待してます。
NGNG
(automaton see0
(see0 (0 -> see1))
(see1 (1 -> see0)))
↑みるからに醜悪で,できそこないのクサレ構文

<automaton see0>
<state name="see0">
<trn><from>0</from><to>see1</to></trn>
</state>
<state name="see1">
<trn><from>1</from><to>see0</to></trn>
</state>
</automaton>
↑最新良好のクールな新しい構文

XML マンセー
NGNG
ワラタ
NGNG
Lisp が流行るには
(defun (x) (* x x))
の代わりに
<defun><args><arg>x</arg></args><body><expression><fun>*</fun><args><arg>x</arg><arg>x</arg></args></expression></body></defun>
みたいな構文を導入すればいいわけですか。
342犬厨
垢版 |
NGNG
古いからってナメてますた、正直すまんかった。
使ってみると楽しい上に便利だった。目から鱗だわ。
NGNG
Xanalysのサイトからw3mでHyperSpecをダウンロードしようとしたら、
HyperSpec6.0.tar.gzとかいうファイルが示されたんですが、
その実態がただのディレクトリリストで、けっきょくダウンロードできませんでした。
しかたないのでCMUのサイトから落としました。
344あぼーん
垢版 |
NGNG
あぼーん
NGNG
>>342
わかればよろしい
NGNG
>>343 もう遅いけど ftp://ftp.xanalys.com/pub/software_tools/reference/HyperSpec-6-0.tar.gz だよな?
今ためしたらちゃんのダウンロードできたけど.あとは ILISP と組み合わせて快適生活を送ってください.
NGNG
こんなとこにもLISPスレが
NGNG
こんなところにもといわれるほど沢山ないと思うが。
NGNG
>>339
亀レスな横道だが、

> <trn><from>0</from><to>see1</to></trn>

< <trn><input>0</input><to>see1</to></trn>

ではなかろうか?
NGNG
339 のやつはどこかで見た記憶があるな.なんだったっけ?
351あぼーん
垢版 |
NGNG
あぼーん
352あぼーん
垢版 |
NGNG
あぼーん
NGNG
>>350
http://technetcast.ddj.com/tnc_play_stream.html?stream_id=644
でしょ。
354ド素人
垢版 |
NGNG
あらら…、
大きな素数を探しに行かせたらなかなか帰ってこないなぁ。
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 がエディタを
(絶対的に)必要とするっていう理由もあるかも。
レスを投稿する

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

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