トップページtech
1001コメント388KB

Common Lisp, Scheme Part 14

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2005/11/18(金) 10:02:06
過去スレ
Part1: http://piza2.2ch.net/tech/kako/987/987169286.html
Part2: http://pc.2ch.net/tech/kako/1002/10025/1002584344.html
Part3: http://pc.2ch.net/tech/kako/1008/10082/1008220265.html
Part4: http://pc.2ch.net/tech/kako/1016/10162/1016211619.html
Part5: http://pc3.2ch.net/tech/kako/1023/10230/1023091882.html
Part6: http://pc3.2ch.net/tech/kako/1031/10315/1031560687.html
Part7: http://pc5.2ch.net/tech/kako/1042/10421/1042167213.html
Part8: http://pc5.2ch.net/tech/kako/1058/10582/1058263391.html
Part9: http://pc2.2ch.net/test/read.cgi/tech/1069594582/
Part10: http://pc5.2ch.net/test/read.cgi/tech/1075630259/
Part11: http://pc5.2ch.net/test/read.cgi/tech/1091456033/
Part12: http://pc8.2ch.net/test/read.cgi/tech/1100229366/
Part13: http://pc8.2ch.net/test/read.cgi/tech/1115901841/
0685デフォルトの名無しさん2006/04/17(月) 17:19:09
>>684
えっと
(setq a 3)
(defun f (n) (+ n a))
(disassemble 'f)


(defun g (n) (+ n 1))
(defun h (n) (+ 2 (g n)))
(disassemble 'h)
とかしてもaが埋めこまれたり、gがインライン展開されたり
していなかったからです。
0686デフォルトの名無しさん2006/04/17(月) 17:27:55
それどころか
(defmacro test (x) `(+ ,x 1))
(defun f (n) (+ 2 (test n)))
(disassemble 'f)
(defmacro test (x) `(+ ,x 10))
(disassemble 'f)
でも fは変わっていませんでした。
上の論文では変わらなきゃいけないと書いてあったと思うんですが、
Common Lisp的にこれはOKなんですかね?
0687デフォルトの名無しさん2006/04/17(月) 22:43:57
Scheme 仲間では Bigloo がかなり高速です。ネイティブコードにコンパイルした場合、SBCL のような高速 CL に匹敵する場合もあります。
ちょっと古いけど、ベンチ。
http://www.cs.bath.ac.uk/~jap/ak1/youtoo/Bench/

とくに Bigloo の場合、コンパイラ用にコードに型情報を付加できたり、floating point 専用の関数 fl+, fl-, fl< ... のようなものが付いてきたり、かなりアグレッシブな処理系です。
もちろん互換性だとか Scheme のシンプルな美しさは失われますけど。また、今どきの Scheme にしてはややライブラリが少ないです。

ちょっと使った印象としては、Scheme で数値処理などを中心に行いたければチェックしてみてみる価値はあります。
私の場合、そこまでするくらいなら Scheme 使わなくていいやと思って、SBCL を採用しましたが。
0688デフォルトの名無しさん2006/04/18(火) 02:29:06
>>686
OK なんじゃない?新しい定義使いたきゃコンパイルしなおせばいいだけでしょ?
0689デフォルトの名無しさん2006/04/18(火) 03:05:29
スレ違い覚悟で訊くけど、CPS(継続渡しスタイル)って、
実用的なプログラムで使っても、プロセスのスタック足りる?
とくにLisp/schemeじゃなくて普通の言語で書いた場合とか。
0690レス分割スマソ2006/04/18(火) 03:07:46
例えば、数千ノードのグラフ処理とか、かなり無理っぽい気がするんだけど…
0691デフォルトの名無しさん2006/04/18(火) 03:33:12
>>689
足りるわけないだろ。
普通はスタックの GC を行う。
0692デフォルトの名無しさん2006/04/18(火) 09:32:09
おお、なるほどスタックのGCか。
…って、CPSでスタックにゴミなんて発生するの?普通に全部戻ると思うんだけど。
関数末尾での呼び出しは、ゴミ以前にそもそも最初からスタックに積む必要はなさそうだし。
0693デフォルトの名無しさん2006/04/18(火) 13:10:53
中でクロージャ使ってたらエクステントは長くなるでしょ。
環境をヒープにとるならともかく。
0694デフォルトの名無しさん2006/04/18(火) 17:58:10
>>688
OpenLispはコンパイルしなおさなくても新しいマクロが反映して
clispはコンパイルしなおせば反映するんですが SBCLはコンパイルしても古いままです。

>>689
CPSだとスタックの消費がクロージャセル+環境の消費になります。
環境全体を保存すると 環境の消費 >= スタックの消費 なのでメモリ消費は減らないと思います。
クロージャから参照されている変数だけ環境に保存すれば減ると思います。
schemeなら末尾呼び出しでいいですけど末尾呼び出しが最適化されていない言語では
他の方法を考えないといけません。

>>691 >>693
意味わからん。

関数の再コンパイルもコンパイルにかかる時間とそれで得する時間を考えると
自動化は難しいのかもしれないです。
compile! expr levelで(compile! f 3)みたいに手動ですればいいのかも。
0695デフォルトの名無しさん2006/04/18(火) 18:30:21
SBCL でもコンパイルしなおせば新しいマクロが反映されるけど?
0696デフォルトの名無しさん2006/04/18(火) 18:48:44
>>695
コンパイルしなおすっていうのはもう一回 defunの式を書くってことですね。
(compile 'f)としていたので古いマクロが使われてました。
clispはデフォルトで(compiled-function-p #'f)がNILなので新しいマクロが
使われているだけでした。

しかしこれでは evalや loadでマクロが定義された時の動作が処理系依存に
なるような。CommonLispのことは全然知らないので外してるかもしれませんが。
Schemeでもいろいろ調べてみます。
0697デフォルトの名無しさん2006/04/18(火) 22:55:00
>>696
> clispはデフォルトで(compiled-function-p #'f)がNILなので新しいマクロが
> 使われているだけでした。

そりゃコンパイルしてないってことじゃ?
それと sbcl って repl 上でも on the fly でコンパイルするんじゃなかったっけ。
ええと、何はともあれその辺の微妙な挙動を詰めたいなら、
仕様書をちゃんと当たっといた方がいいかと。
http://www.lispworks.com/documentation/HyperSpec/Body/03_b.htm
0698デフォルトの名無しさん2006/04/19(水) 21:46:32
gaucheのライブラリをCで書くときのお作法のドキュメント、どこかにありますか?
0699デフォルトの名無しさん2006/04/19(水) 23:22:23
Gauche-mqueueってのを実装するサンプルがアーカイブに入ってた希ガス。
ドキュメントもちゃんとShiroさんが書いたの入ってたと思うけど。
スタブジェネレータとか既存のスタブで勉強しないで手取り足取り親切に
教えてくれるようなのを期待してるとしたら多分ない。

この辺のAPI見直す予定ってアナウンスされてるからそれまで待てば?
0700デフォルトの名無しさん2006/04/19(水) 23:50:19
>>699
あ、ほんとだ。READMEにも説明書いてありますね。
ネット上だけ探してた…
0701デフォルトの名無しさん2006/04/20(木) 12:58:43
>>687
> Scheme にしてはややライブラリが少ないです。
bigloo-lib http://bigloo-lib.sourceforge.net/(ダンロードhttp://sourceforge.net/project/showfiles.php?group_id=3455)
もあります。

内部にHaskellのような型システムを持っているのでbiglooとCの型から新しい型を定義することも可能ですが、ドキュメント化されてません。bigloo-libの人達が「ドキュメント化してくれ〜」と言っても「未完成だからドキュメント化しない」と答えて6年以上になるでしょうか。

bigloo-libのSRFIですら取り込まれる気配が無いし、*bigloo-version*のような基本的なシンボルをChangeLogに書かずに消してしまってbigloo-libがコンパイルできなくなったりとか、孤高の天才の高性能コンパイラ、という印象です。
0702デフォルトの名無しさん2006/04/20(木) 13:23:17
>>687
>Scheme で数値処理などを中心に行いたければチェックしてみてみる価値はあります
biglooでデータ構造の最適化をしようとするとCの型が増えていきますが、書いているうちに制限の多いCでコーディングしているような錯覚に陥って、なんでこんなことしてるんだろうと思ったこともあります。

>Scheme のシンプルな美しさは失われますけど。
A practical Scheme compilerとあるように、美しさではなくて簡単にCと共存できる実用性を目指している処理系だと思います。Xlib.hを読み込んでbiglooのインクルードファイルが平気で生成されたときにはびっくりしました。

何かまともなことをやろうとすると独特のコーディングが要求されるので、それに慣れるまでけっこう大変だと思います。私がいじってた頃はインタプリタのreplが末尾再帰でなかったので途中でやめてしまいましたが。
アグレッシブと言うよりアレゲかもしれません。名前はstalinに負けてますが。

ただし出来上がってしまえば、やたらにパフォーマンスのいいものが出来ると思いますよ



0703デフォルトの名無しさん2006/04/20(木) 15:14:02
>>701
補足しておくとbiglooの型システムはbigloo上のオジェクトシステムとは別物です。
bigloo本体を書換えずにプリミティブを作成したり、既存型を拡張したりできます。
type、subtype、coerceなどのキーワードが出てきます。

bigloo-libのcgenがbiglooへのプリプロセッサとして型に対する細々とした操作を
代りにやってくれます。

ChangeLogのバグフィックスが気にならなければ、少し古いbiglooでbigloo-libの
コンパイルは可能だと思います。

biglooがbigloo-libとの連携さえしっかりしてくれれば、またbiglooやりたいと
思ってます。bigloo-libのコンパイルで失敗する度にbigloo-libの人達の気持を勝手に
想像して、暗い気分になるのが嫌なだけかもしれません。それも思い込みで。

期待しすぎてコケたので否定的なことを書きましたが、biglooにはいじれる所がたくさん
あるので、最初はschemeだとは思わずに遊んでみると幸せになれるんでないでしょうか。
0704デフォルトの名無しさん2006/04/20(木) 22:16:30
すれ違いで悪いけど
bigloo って INRIA でしょう?
良く知らないけど INRIA の本命は OCaml じゃないのかなあ。
0705デフォルトの名無しさん2006/04/20(木) 22:30:39
>>704
INRIAだって大組織だからいろんな先生が居るだろうし、統一した意思を
持っているとはとても思えない。
0706デフォルトの名無しさん2006/04/21(金) 00:01:26
Eiffel やってる人も居るね。

http://smarteiffel.loria.fr/

これも C or Java に変換する系
0707デフォルトの名無しさん2006/04/21(金) 03:13:42
>>689
末尾再帰の最適化がきちんとされる言語ならば。
例えばluaはそう。
0708デフォルトの名無しさん2006/04/21(金) 09:20:35
>>707
lua sugeeeeeeee!!!!
0709デフォルトの名無しさん2006/04/22(土) 03:12:34
>>689, >>707
>とくにLisp/schemeじゃなくて普通の言語で書いた場合とか。

普通の言語ってのがよくわからんが、luaは普通の言語なの?
とりあえずメジャーな言語だと、Javaが処理系依存だけど末尾再帰を最適化してた。
たしかIBMのVM、SUNはやってなかったと思う。
0710デフォルトの名無しさん2006/04/22(土) 05:05:25
末尾再帰の最適化は多くの場合はコンパイラの最適化オプション(GCC とか)であって、
言語仕様として要求される事は少ないですね。関数型言語くらい?
0711デフォルトの名無しさん2006/04/22(土) 08:56:26
おまいら、DrSchemeの話しようぜ
0712デフォルトの名無しさん2006/04/22(土) 09:04:59
L#なんてのもあったんですね。.Net用のLispだとか。
http://www.lsharp.org/
0713デフォルトの名無しさん2006/04/22(土) 17:37:01

普通の奴らの上を行け、を読んで
ハッカーはlispを習うもんだと洗脳されたので
GWにschemeを勉強しようと思うのですが
間違っていないですよね?
0714デフォルトの名無しさん2006/04/22(土) 17:48:46
はい。間違っていません。
0715デフォルトの名無しさん2006/04/22(土) 17:52:03
>>713
GW 中に SICP 読破できれば完璧です。
0716デフォルトの名無しさん2006/04/22(土) 18:49:18
>>709
luaはふつ〜の言語だよおw
JavaScrpit似でゲームに組み込まれてる言語の中では一番メジャー
0717デフォルトの名無しさん2006/04/22(土) 19:39:56
>>715
もうちょっとでかい字で印刷してほしかったと思った。

眼鏡新調かのぉ
0718デフォルトの名無しさん2006/04/22(土) 19:45:34
http://www.ccs.neu.edu/home/will/Larceny/

Larceny って地味に更新されてるのね。IA32 向けのアセンブリ出力
出来るようになってたの知らんかった。
0719デフォルトの名無しさん2006/04/22(土) 19:51:38
>>710
関数型言語でも、言語仕様で末尾最適化が明記されてるのは稀だとおもう
HaskellもOCamlも当たり前のように最適化を行うけど、言語仕様には含まれてなかったような・・・
(間違ってたらスマソ)
0720デフォルトの名無しさん2006/04/22(土) 21:31:01
MLは常識、Haskellはする必要がない
0721デフォルトの名無しさん2006/04/23(日) 02:35:51
coerceってなんて発音するの?
0722デフォルトの名無しさん2006/04/23(日) 02:37:41
こえーす
0723デフォルトの名無しさん2006/04/23(日) 03:39:51
http://www.m-w.com/dictionary/coerce で発音が聞ける。
0724デフォルトの名無しさん2006/04/23(日) 09:52:46
おまいらDrSchemeの話をしろ。
強制だ。
0725デフォルトの名無しさん2006/04/23(日) 10:33:35
昨日、MacにGaucheをインストールしようとして、うまくいかなかったので、
Dr.Schemeを代わりにインストールした。
学習目的にはいいかも。他にもおもちゃ的要素があって楽しい。
0726デフォルトの名無しさん2006/04/23(日) 13:53:02
MrED というのを見るたび、勃起不全の知人を思い出して笑ってしまう。
0727デフォルトの名無しさん2006/04/23(日) 14:37:28
>>726
そこは笑うところじゃないだろ。
0728デフォルトの名無しさん2006/04/26(水) 02:34:15
処理系を(特にCで)作るとき、どこからどんな順で作っていきますか?
自分はエラー処理は当初はabort一択、GCもさっぱり忘れて
作り始めて、ある程度形になるまではそのままいっちゃうんですが。

0729デフォルトの名無しさん2006/04/26(水) 05:42:01
GCは、少なくともどういう方針でゆくか (オブジェクトの移動は
ありか/conservativeで行くか明示的にprotectするか/SCMみたいに
固定長ヘッダだけ自前で管理して後はmallocに任せるか、それとも
全て自分で面倒みるか、等) だけは決めとかないときつくない?

0730デフォルトの名無しさん2006/04/26(水) 16:43:45
Schemeで、文字列だけでなく数値やリストを連結してひとつの文字列にしてくれるような関数はありますか。
(concat "foo" 123 '("a" "b" "c"))

"foo123abc"
になるような感じです。
0731デフォルトの名無しさん2006/04/26(水) 17:42:10
>>730
自分で書いてみました。初心者なんであまりうまくないでしょうけど。
(define (string-concat list)
(if (eq? list '())
""
(string-append (car list)
(string-concat (cdr list)))))

(define (to-string val)
(cond ((string? val)
val)
((number? val)
(number->string val))
((boolean? val)
(if val "true" "false"))
((symbol? val)
(symbol->string val))
((eq? '() val)
"")
((list? val)
(string-concat (map to-string val)))))

(to-string '("foo" 123 #f 'symbol (10 20 30))) ;; 結果:"foo123falsequotesymbol10quote2030"

なんか、この程度なら標準関数にありそうな気はするんですけど。
というか、Shemeの入門ページはいくつかありますが、関数リファレンスみたいなのが見つからないです。
どこかによさげなのないですか。
0732デフォルトの名無しさん2006/04/26(水) 17:54:05
>>731
関数リファレンスなんてR5RS(とSRFI)を見ればいいじゃん。
0733デフォルトの名無しさん2006/04/26(水) 19:28:19
>>731
Gaucheのマニュアルが充実してる。
根拠になる規格(SRFI)の番号も付記してるから何かと便利。
Gauche使いでなくても手元にあって損はないと思うよ。
日本語でこれだけそろってる資料は少ないんじゃないかな。
0734デフォルトの名無しさん2006/04/28(金) 10:59:55
話の腰を折って申し訳ないんですけど、質問す。
当方 SCM のインストールを試みているのですが、
build の途中で以下のメッセージが出て scmlit のプロンプトに入ってしまいます。

> ;In file loaded from /home/hoge/work/cvs/scm/Init5e2.scm:782:
> ;ERROR: "/usr/local/lib/slib/require.scm": unbound variable: *features*
> ; in expression: (cons (#@software-type) *features*)
> ; in scope:
> ; (provided? feature-list . #@define)
> ; (expression) procedure provided?
> ; defined by load: "/usr/local/lib/slib/require.scm"
>
> ;STACK TRACE
> 1; (#@define ((provided? (#@lambda (expression) (if (memq express ...
> 2; (#@cond ((#@slib:provided? (#@quote srfi)) (slib:provide (quot ...
> 3; (#@define ((hss (#@has-suffix? #@file (#@scheme-file-suffix))) ...
> 4; (#@load (#@in-vicinity (#@library-vicinity) "require"))

SCM だと特に slib の init を弄らなくていい、ということだったので、
てっきり簡単に build できるものと思っていたのに…。
slib 同梱の Template.scm に *features* のための configure だとかなんとか
書いてあったのでこれをどうにかするのでしょうか?
あと build のオプションも -F をいろいろ試してみましたが結果は同じ。
いかにも素人くさい質問なんですがご助力おねがい致します。

SCM -> cvs 先端
slib -> 3a3
環境 -> linux Kernel 2.6.16.11 (Archlinuxというマイナーなやつです)
0735デフォルトの名無しさん2006/04/28(金) 19:30:47
releaseじゃなくていきなりcvsから引っ張ってきて失敗したからって
質問されても。しかもドキュメントもろくに読んでないっぽいな。
0736デフォルトの名無しさん2006/04/28(金) 20:05:01
>>729
ある程度の見通しは立てて、それを阻害しないような選択はするけど、
基本的には忘れます。
0737デフォルトの名無しさん2006/04/28(金) 21:52:31
>>735 レスどうもです。
まったくおっしゃる通りで返す言葉もございません。
release落としてやってみたらすんなり通りましたorz...。

ドキュメントは読んだんですが、エラーメッセージからしてきっと単純なミスなんだと
思い込み、あれかこれかと憶測で試みた後、結局自分の無理解を思い知らされた格好です。

それでも懲りずに質問なんですが、r4rstest.scm を走らせると

> errors were:
> (SECTION (got expected (call)))
> ((6 5 6) (#f #t (mult-float-print-test #f)))
> ((6 5 6) (#f #t (mult-float-print-test #f)))
> ((6 5 6) (#f #t (mult-float-print-test #f)))
> ((6 5 6) (#f #t (mult-float-print-test #f)))
> ((6 5 6) (#f #t (mult-float-print-test #f)))

というエラーが出ます。
どこかでこれは実行環境の浮動小数点数の入出力の精度によるもので、
大して気にすることはないとあったと思うのですが、そういうものでしょうか。
初心者が気にするようなところではないのでしょうが、
どうにかしようがあるのなら、どうにかしたい気がします。
0738デフォルトの名無しさん2006/04/28(金) 22:02:13
>>737
そんなに気になるならどういうテストだかちゃんと調べて自分の頭で考えて
みればいいじゃないか。謙遜かもしれんが、自分で自分を「初心者」と呼ん
でるうちは進歩しないぞ。
07397372006/04/28(金) 22:25:36
>> 738
そうですね。泣き言いわずに自分で頑張って調べてみることにします。
Bootstrap にするには良い取っ掛かりかも知れません。
どうもでした。
0740デフォルトの名無しさん2006/04/28(金) 22:44:19
俺はふどー小数点は諦めてる
どうせ使わないし
Cと同じ動作すればとりあえず実用上問題ないし
0741デフォルトの名無しさん2006/04/28(金) 22:51:10
CLtL2の浮動小数点のとこはGuy Steeleの執念を感じる
0742デフォルトの名無しさん2006/04/28(金) 23:45:54
むしろ浮動小数点数を基本にして NaN の中に fixnum 等を埋め込む
0743デフォルトの名無しさん2006/04/29(土) 00:26:57
>>742
ALUレベルから設計したくなるな。
0744デフォルトの名無しさん2006/04/29(土) 01:19:07
前に今は亡きbitで読んだJava関係のGLSのネタには感動した。
sinの精密な定義にえらい時間をかけてるとか。
0745デフォルトの名無しさん2006/04/29(土) 05:27:17
>>743
あれだ、Opteronのソケットに挿せるFPGA。
0746デフォルトの名無しさん2006/04/29(土) 06:06:47
>>737
まったく気にしないよりは気にした方がいいと思うけど、
気にしたからといって全ての問題が解決できるわけじゃないからね。
ここはそういうことがあったと心に留めておいて、ひとまずは先に進むのがいいのでは?
何をしたくてSCMをインストールしたのか知らないけど、目的はあったんでしょ?
0747デフォルトの名無しさん2006/05/03(水) 16:32:37
Gauchのコマンドgoshって、readlineをサポートしないのでしょうか。
インタラクティブに実行できるのはいいんですが、C-pとか使えるようになってほしいんですけど。
0748デフォルトの名無しさん2006/05/03(水) 16:45:28
>>747
ledit
ttp://cristal.inria.fr/~ddr/

rlwrap
ttp://utopia.knoware.nl/~hlub/uck/rlwrap/
0749デフォルトの名無しさん2006/05/03(水) 17:47:01
>>747
Gauche-readline
http://www.netlab.is.tsukuba.ac.jp/~yokota/izumi/gauche/
0750デフォルトの名無しさん2006/05/03(水) 20:02:00
このごろscheme勉強はじめたんですが、
listの操作でいろいろなクイズ(パズル?)ありますよね。
あれでおもったんですが、ああいったlistの操作を群論にあてはめるような
研究(遊び?)ってないんでしょうか。
つまり、群論の最初でやる置換群を拡張したようなもの。

もしあるならば、任意のリスト遊びがある記号に対応し、
その記号を分解していくことで、
任意のリスト遊びが、記号の積で自明にあらわせないものかと。

こういうことは誰でもおもいつくものだから、
すでに誰かやっている、もしくはやっても意味無い事の説明でも
どこかにころがってないかな、と思い質問いたします。
0751デフォルトの名無しさん2006/05/06(土) 04:31:14
http://www.amazon.co.jp/exec/obidos/ASIN/4757727151/
S式ってあるけど、Lispとは関係なさげ
0752デフォルトの名無しさん2006/05/06(土) 17:29:33
ライトノベルってやつか。
以前もプログラミング用語使った題名の作品をこの板で見たな。
0753デフォルトの名無しさん2006/05/06(土) 18:35:53
登場人物のお姉ちゃんの名前にコンパイラだのインタプリタだのついてる漫画もあった気がする。
0754デフォルトの名無しさん2006/05/06(土) 18:39:26
eq とかを名前に使うのはどうかしてる。
0755デフォルトの名無しさん2006/05/06(土) 20:58:48
ヒロインが大学院で関数型言語を研究してたりな。
0756デフォルトの名無しさん2006/05/06(土) 22:53:40
ttp://scrapbook.ameba.jp/lightnovel_book/entry-10011000402.html
>惣一くん……足で踏まれて逝ってしまったり、無理矢理服を
>脱がされて全身の隅々までニオイを嗅がれて
>しまったりと、汚され過ぎですっ! うはっwwwをkwwww

どうやらLispとは関係なさそうです。
0757デフォルトの名無しさん2006/05/07(日) 01:06:03
LispでOpenGLを扱いたいのですが、何かオススメの処理系はありませんか?
OSはWinXPを考えております。今のところGauche-glぐらいしか知りません。
0758デフォルトの名無しさん2006/05/07(日) 12:14:52
SRFI をつらつら眺めてみたけど、Scheme って便利そうね。
R6RS はいつになるんだろう…
0759デフォルトの名無しさん2006/05/07(日) 12:56:45
桜が咲く頃かな
0760デフォルトの名無しさん2006/05/07(日) 13:51:04
アイスランドで桜が咲く頃になれば・・・
0761デフォルトの名無しさん2006/05/09(火) 11:15:54
vim7が、リリースされましたが、
mzscheme interfaceが、内蔵されました。
vim6の時点で、perl,python,rubyがdynamic linkされたvimを作ることが出来ましたが、
mzschemeは、そのまま、staticに取り込まれているみたいです。

詳しくは、vim7上で、
:help mzscheme
してみてください。


;;schemeの開発環境としては、どうなんでしょうね?

;;ここまで書いて気づいたけど、pythonもstatic linkっぽい。

0762デフォルトの名無しさん2006/05/09(火) 11:56:56
もうちょっとだけ、すいません。

helpをもうすこし読んでみたら、上記の言語、(perl,python,ruby,mzscheme)の他に
tclも含めて、vimのエディターマクロっぽく使えるみたいですね。
(別途、vim scriptもあるんですが。)

エディターマクロっぽくっていうのは、エディターの環境/設定が変更できて、
バッファの内容が、操作できるって意味で使っています。

例を上げると、
(set-buff-line-list {start} {end} {string-list} [buffer])
みたいな関数が有りました。

と、言うことは、emacsみたいじゃーーん。scheme版のーー。

と、ちょっと興奮してしまいました。

;;すれ違いぽかったら、ごめんなさい。
;;けど、text操作なら、私的にはperlの方が楽チンかなぁ…。
0763デフォルトの名無しさん2006/05/09(火) 17:59:33
guile scheme のインタプリタ使ってるんだけど、環境をクリアするにはどうしたらいいの?
いつもはguileを終了して再起動してるんだけど、もっと簡単な方法ない?
0764デフォルトの名無しさん2006/05/09(火) 20:04:42
はじめまして,最近研究でacl(linux)をはじめたものです.
今,lispでfortranを走らせようとしているのですが,loadがうまくいきません.
環境変数の設定
setenv LD_LIBRARY_PATH /usr/local/acl80.64:$LD_LIBRARY_PATH
共有ライブラリの作成とリンク
f77 -c -DAcl64Bit -l/usr/local/acl80.64/misc/ fnames.f
ld -shared -o fnames.so fnames.o /usr/local/acl80.64/libacli8010.so
を行った後, (load "fnames.so")としても
; Foreign loading fnames.so.
Error: Loading fnames.so failed with error:
fnames.so: cannot open shared object file: No such file or directory.
[condition type: file-error]
というエラーがでてしまい,共有ファイルが作成されていないと出てしまいます.
.soファイルが作成されているのに何故このようなエラーが出るのか,ご存知の方
がいらっしゃれば教えていただけないでしょうか?マニュアルを読んでいるのですが,
解決方法がみつからなくて・・・お願いします.
0765デフォルトの名無しさん2006/05/09(火) 21:09:40
linuxならLDのPATHに無いとか?
0766デフォルトの名無しさん2006/05/09(火) 23:52:37
straceとかでどのファイルを読みに行ってるか
見れなかったっけ?
0767デフォルトの名無しさん2006/05/10(水) 02:34:10
REPLで:pwdしてみるとか*default-pathname-defaults*に何がバインドされてるかとか
調べて何処見に行ってるか確認したら?
いいなぁ64bit版ACL。とてもじゃないが買ってもらえんわ。うちじゃ。
0768デフォルトの名無しさん2006/05/10(水) 15:06:22
色々と回答していただいてありがとうございました.早速試してみます.
内の教授がlisp好きで,大枚はたいて買っちゃったんですよ.俺は,lispがあるということさえ
知らなかったんでこれから勉強していきます.
0769デフォルトの名無しさん2006/05/10(水) 18:14:49
>>750
Schemeじゃないが、飯高先生がPrologで入り口付近をやってた。
『Prologで作る数学の世界』(朝倉書店)
0770デフォルトの名無しさん2006/05/10(水) 23:04:22
固定小数点数演算みたいな、ストレージクラスに依存する処理は Scheme では
どうするのでしょうか。使用目的は画像処理です。

MIT Scheme には fixed pointer が組み込みであるみたいだけど、普通は homo-
geneous vector とかを使うのかな。
0771デフォルトの名無しさん2006/05/11(木) 00:21:01
あの、基本的なことで申し訳ないけど、schemeで改行文字ってどうやって表すの?

aという文字は#\aと表すけど、改行文字は?
0772デフォルトの名無しさん2006/05/11(木) 00:25:33
#\newline
0773デフォルトの名無しさん2006/05/11(木) 00:26:14
>>771
#\newline
つか、せっかくペラペラな言語仕様書(R5RS)なんだから、隅から隅まで読め
0774デフォルトの名無しさん2006/05/11(木) 00:43:27
>>772-773
サンクス。分かった読んでみる。
0775デフォルトの名無しさん2006/05/11(木) 01:31:11
>>770
vector でがんばるか、自作の処理系に独自拡張をいれる。
でもこの言語に固定小数点が欲しいとか言われても…
0776デフォルトの名無しさん2006/05/11(木) 07:40:56
>>770, >>775 知ってるとは思うけどSRFI-4 Homogeneous numeric vector data typeshttp://srfi.schemers.org/srfi-4SRFI-63 Homogeneous and heterogeneous arrayhttp://srfi.schemers.org/srfi-63SRFI-4 は使える処理系多いと思う。
07777702006/05/11(木) 23:14:07
>>775,776
レスどうもです。
homogeneous vector の SRFI を読んで、計算効率に付いても
ある程度考えている言語かなと思いました。やはり自作するのが
早道っぽいですね。
0778デフォルトの名無しさん2006/05/11(木) 23:27:02
#scheme-jpというIRCチャンネルができたらしい
0779デフォルトの名無しさん2006/05/12(金) 12:00:15
>>778
カッコだけで会話するの?
0780デフォルトの名無しさん2006/05/12(金) 12:30:53
continuation を使って会話をします
0781デフォルトの名無しさん2006/05/12(金) 15:05:22
(begin (call/cc (lambda (c) (display ">>780") (newline) (display "ふふ〜ん") (newline) (c (values 782 'デフォルトの名無しさん 'sage)))))
0782デフォルトの名無しさん2006/05/12(金) 15:20:40
values いらんだろ
0783?デフォルトの名無しさん2006/05/14(日) 21:23:24
>>781 >>782
r5rsだといるんじゃねえの?
r6rsだといらんみたいだけど
どうなんだろう?
0784flatline ◆r6EONKKhcc 2006/05/14(日) 22:39:46
どうも,仕事の遅い翻訳者です.
WIDEの#scheme-jpに入ってみました.
■ このスレッドは過去ログ倉庫に格納されています