[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 02/01 06:02 / Filesize : 245 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Lisp Scheme Part33



1 名前:デフォルトの名無しさん mailto:sage [2011/10/09(日) 17:58:58.06 ]
Common Lisp、SchemeをはじめとするLisp族全般のスレです

■前スレ
Lisp Scheme Part32
hibari.2ch.net/test/read.cgi/tech/1303299696/

■テンプレ
wiki.fdiary.net/lisp/

■関連スレ
【入門】Common Lisp その8【質問よろず】
hibari.2ch.net/test/read.cgi/tech/1309940115/

516 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 23:47:34.98 ]
>>515
cl.cddddr.org/index.cgi?%E8%89%AF%E3%81%8F%E3%81%82%E3%82%8B%E8%B3%AA%E5%95%8F#H-2v8nnc63s7pll

ライブラリについては、手を加えなければ、ライセンスに影響を与えない。
その場合、アプリケーションには自分の好きなライセンスを設定できる。

ただ、含まれるライブラリのバージョンのソースコードの入手手段の保証や、
それぞれのライブラリのライセンス本文の提示とかはしないといけないから、
その辺はしっかり対応しないといけない。

ClackはGitHubだから、対応するリビジョンのリンクでも明記しておいて、
あとはそれぞれのライブラリがどのライセンスを採用してるのかを明記して、
LLGPLとBSDライセンスの本文を含めれば良いんじゃないのかなー。あと著作権表示。


517 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 00:32:23.27 ]
>>516
まさに探していた説明です
アプリケーションには任意のライセンスを設定できるのですね
そのうえで使ったライブラリのソースコードのありかとライセンスを表示する
すべきことがわかりました

518 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 01:55:11.33 ]
ということは
biglooやgambit-CでGPLなライブラリをuseやrequireしたものをCに変換して
Cをバイナリーにした場合はソース公開の義務はないってことでいいのかな

519 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 03:17:22.44 ]
GPLはリンクの方法を区別しないから(少なくともFSFはそう思ってる)、
それ普通にGPLに感染すると思う。

www.gnu.org/licenses/gpl-faq.ja.html#IfLibraryIsGPL

LGPLならライセンスは影響を受けないと思うけど、
静的リンクだから全ソースコード公開の義務はあると思う。

ja.wikipedia.org/wiki/GNU_Lesser_General_Public_License#LGPL.E3.81.AE.E7.89.B9.E5.BE.B4

LLGPLなら確か大丈夫なはず。ただ、ライブラリのコード配布は必須。
最後の段落。

opensource.franz.com/preamble.html


520 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 03:30:15.93 ]
chickenはeggの分割コンパイルできるんじゃないの?
動的リンクにできそうな予感が

521 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 11:04:08.18 ]
>>519の最後のリンク先を見ると
LLGPLのライブラリを静的リンクして実行ファイルを作った人は
使ったライブラリのソースコードを(公式サイトだけではなくて)独自に配布しなければならぬ
こう理解したけどこれでいいのかな

522 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 12:04:43.34 ]
プラグインとかならともかく
動的リンクでも根本機能として必要ならダメだよ
使うのをきっぱりやめた方が早い


523 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 12:38:42.75 ]
>>520
できるの?
初めて聞いたんだけど

524 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 14:05:09.96 ]
>>522
それはGPLの話(>>518)だよな?
LGPLの4.d(LGPLv3の場合)では「"Minimal Corresponding Source"と"Corresponding Application Code"の配布」と
「適切な共有ライブラリ機構の使用」のどちらか一つの実行が条件だから
後者を選択した場合はソースの配布は義務付けられないと思うが



525 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 16:01:16.33 ]
>>521
入手できる手段を保証すれば大丈夫じゃないかな。アクセスできるかが重要なので。
自分は、GitHubとかなら特定リビジョンのリンクの提示だけでいけると解釈してる。
もちろん、配布元が閉鎖とかしちゃったら、自分で配布しなくちゃいけない。
この辺はGPLやLGPLの思想を汲んでおけば、そう大外しはしないと思う。

もちろん、会社の商売でやるなら法務と相談必須だけど。


526 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 16:23:32.92 ]
一応根拠補足。

LLGPLの最後の段落に"in accordance with the terms and conditions of the LGPL"とあり、
LGPLの6.dでソースコードを同等のアクセス手段、同じ場所で提供すれば良いとされているため。
ダウンロードページに両方のリンクを張っておけば、多分これを満たすと思う。

sourceforge.jp/projects/opensource/wiki/licenses%2FGNU_Library_or_Lesser_General_Public_License


527 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 16:52:20.72 ]
心配ならソースのzipを読み込んだコアを配布すれば?
ある関数実行したらファイルに書きだすようにしといて。

528 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 16:57:29.14 ]
そんな面倒なことするくらいなら、普通にソースも一緒に配布するだろ……。


529 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 17:08:30.14 ]
元のお題(>>515)が実行ファイル一つだけにしたいというものだから。

530 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 17:16:51.41 ]
READMEすら同梱できないとか、>>515のどこにそんなストイックな条件が書いてんだよw
まあ、ある意味そういうのも厨二心をくすぐられてwktkするけど。


531 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 17:43:22.27 ]
気になったんだけど、common lisp絡みの案件で
ライセンス上問題となった事件は何かある?
それとfranzがllgplをわざわざ設けた経由が知りたい
llgplでなくて修正BSDで実用上十分だと思うんだけど
裏事情があるのかしら

532 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 18:11:50.54 ]
ソースコードの再利用について考え方が全く違うもので十分という意味がわからない。

533 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 00:56:24.51 ]
GPL系と商用のデュアルライセンスの話なのか?

534 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 06:11:56.89 ]
名言来たな。「LLGPLじゃなくて修正BSDで十分」
どうみてもコピーレフトへの宣戦布告です本当にありがとうございました。



535 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 06:53:08.91 ]
GoogleがV8に修正BSDを採用した経由が知りたい
修正BSDでなくてUnlicenseで実用上十分だと思うんだけど
裏事情があるのかしら

536 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 12:12:10.46 ]
>>531
修正BSDを開発者の視点から考えてみるといいよ
修正BSDでライセンスされているプログラムは、著作権表示の点をクリアすれば
ソースコードを公開しなくてもいい
そのプログラムを開発した人にとっては自分が作成したコードを見せなくていいが
他の開発者からするとそのプログラムのコードを見る機会がなくなる
誰にとってそのライセンスがいいものかは立ち位置によって変わることには
注意したほうがいいかも

537 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 14:13:00.71 ]
>>536
>そのプログラムを開発した人にとっては自分が作成したコードを見せなくていいが
いまどきスパゲッティコードを書いているわけでもないだろうよ。
>他の開発者からするとそのプログラムのコードを見る機会がなくなる
見る機会がなくなるのも嘘な気がするなあ。最新技術としての賞味期限過ぎたら
公開しようかなと考える人・団体はかなり存在するんじゃないの。

BSDスタイルライセンスの良いところは公開しない・するといつでも自由に切り替えられる
ところだよ。

538 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 18:38:52.63 ]
>>537
NDAで公開出来ない物があるからじゃろ、自分のコードが綺麗でないから公開したくないってのとは別の問題。


539 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 00:06:49.95 ]
>>537
納入するときはツールを使ってわざとスパゲッティコードにしてる俺が来ましたよ

540 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 02:15:29.56 ]
>>539
そのツールは可逆性があるの?
鍵がないとそのツールを使えば可逆できるなあ。

541 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 02:29:56.35 ]
何を言ってるんだお前は。

542 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 07:37:11.95 ]
立て続けに見当外れなことを言ってる奴は釣ってんのか?

543 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 13:00:00.91 ]
>>539
マクロを全部展開するだけでもスパゲッティー化できるよね
前に見たbiglooのソースもあきらかにやってたし


544 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 17:16:02.39 ]
おれもコードランダム化させるの作ったよ
自分でハックしてみたが方式が判ってても追跡困難だった
もう二度とやりたくない



545 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 17:53:04.64 ]
コードランダム化のコードを
誰か公開したりしらいいなあ

546 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 19:06:20.31 ]
実行速度を落とさないで難読化なら
変数や関数の名前をランダムなものに変えたり
実行されない関数を追加したり
あと他に何があるかな


547 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 19:33:11.80 ]
実行されないはずの意味ありげな処理追加。
実行されたら、それはそれで異常検出。

548 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 22:38:44.07 ]
>>546
やっぱりマクロの魔術師でしょう :-)

これRubyちゃうん?
いやCommon Lispさ(ふっ)

とか

549 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 22:44:35.94 ]
納入先がWindows使ってたら、改行コードをUNIXの改行コードにする
改行してしてなくてもいい場所は改行を削除
コメント部分の日本語を全部文字化けさせる
コメント部分に実行ファイルの機械語をASCIIコードに変換して追加
diffの差分ファイルを納入

550 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 23:03:45.81 ]
それ途中難読化じゃなく処理系を相手にチキンレースしてるだけでは

551 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 23:18:29.70 ]
納入しなければならないのはきちんと動くけど人間が読めないコード
相手に解読されたら仕事が来なくなる

552 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 00:25:44.16 ]
せめてLispのケースで話して(><)

553 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 00:35:06.37 ]
LISPプログラムを他人に渡すなんて、大学の研究室の後輩に渡すくらいしかなかった
当然、究極のスパゲッティにして渡したけど

554 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 00:37:44.49 ]
カレーが少し余ったんでスパゲティ茹でて一緒に炒めたらおいしかった



555 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 01:59:19.41 ]
>>553
先輩のプログラム、センス悪いな。糞じゃん
あのひとエラソーにしてるだけだったよな。いなくてせいぜいだ
とか言われてるかも。

556 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 02:00:16.59 ]
>>554
次は、麻婆豆腐にスパゲティ入れて上にチーズをかけてオーブンで焼いてみ。

557 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 02:05:49.39 ]
>>555
そのプログラムを即座に改良できるのが俺だけ という優越感

558 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 03:45:54.90 ]
まあいいんじゃないの
自分で一から書く気になってくれれば

559 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 03:55:01.34 ]
先輩がせっかくテーブル拭きプログラムを書いたのに姑のようにまたテーブル拭きプログラムを書いていいか、悩まないか。
そういう先輩に限って卒業も飲み会に参加して、「まだあんな(俺の)プログラムを使っているの」とバカにしつつ顔が
喜んでいたりするんだよなあ。

560 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 22:32:46.08 ]
難読化したソースなんか納入したら検収で落とすだけだが。
当然納入できなかったんだから違約金は払ってもらう。

561 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 00:55:59.54 ]
お前みたいな奴はマ板に行ってくれ。

562 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 06:09:07.85 ]
ちょっと遊びで処理系実装してるのだけど
symbolとquoteの実装方法で参考になるコードどこかにないでしょうか
mosh?


563 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 06:19:30.02 ]
何で実装しているのか、書けよ

564 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 06:57:54.59 ]
c



565 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 06:58:35.92 ]
ホビットが
#define long SCM
とかしててびっくりした

566 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 07:13:22.47 ]
何を参考にしたいのかによるな。
原理的なとこ知りたいならミニマルな処理系がいいんじゃない? tinyschemeとか。
つーてもsymbolは単に辞書に登録した文字列だし、quoteの処理はもっと高レイヤ
なのでLispで書いてあるevalの実装あたりを見ればいいんじゃないか。

567 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 11:29:44.73 ]
Schemeって他の処理系の定義重複部分をコピペすると書く所ほとんどないのか。

568 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 11:41:02.55 ]
>>562
mitpress.mit.edu/sicp/full-text/book/book-Z-H-26.html#%_sec_4.1

初学者がqouteの処理だと思っていることは、ほとんどreadがやっている。


569 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 15:35:57.68 ]
>>568
SICPって何回くらい読むもの?
再来年の年初めぐらいから読み始めようかな。

570 名前:デフォルトの名無しさん [2011/12/24(土) 16:09:36.63 ]
難読化なら一度速度優先でコンパイルしてアセンブラをはかせる。
そのコードを今度はCなりLISPなりに戻してやればよいじゃないかと思う。

動けばよいコードを納品って契約ならコンパイラでアセンブラはかせて、
それをそのまま納品でよいじゃないかともおもいます。

昔移植でアセンブラからCへコンパイルするコードは作ったことがあります。
半自動でしたけど9割は自動化して移植してました。

571 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 16:19:20.59 ]
>>570
環境って何?

572 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 22:10:55.29 ]
環境は組み込み。
68アセンブラからCへコンバート。
IOは仮想化して対応した。

なのでアセンブラまで落とせればそれを高級言語に再変換してあげれば、
それだけで難読化しているようなもんだと思うよ。

動作の保証はテストを書いておいてそれを通すとある程度担保てきると思います。

573 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 23:34:26.37 ]
いま難読だい?

574 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 23:37:57.62 ]
新しい構文を作るマクロって可読性下げてるよね。マクロ禁止みたいなコーディング規約とかある?



575 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 23:39:19.87 ]
そういうのは規約というよりプロジェクトルールだろ
>>574はマグロ納品禁止な

576 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 23:42:17.73 ]
一行目がマジレスなのか二行目のギャグを言うためのフェイクなのか分からん

577 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 23:46:44.33 ]
lispやschemeを使った仕事ってあまりイメージがわかないんだけど
どういった用途に使われているのかな

578 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 23:47:55.58 ]
他人のソースにdefin-syntaxなんて出てくると
この野郎・・・!て思うわけよ


579 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 23:50:34.67 ]
つーか複数人でlisp使うプロジェクトなんて実在するのかよ
ゲリラ的に入れちゃいました、って案件ばっかりだぞ

580 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 23:52:13.24 ]
」なに・・・これ・・・」
「lispですよー知らないんですか哀れ」

581 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 23:54:26.95 ]
普段からストレスの連続なのに括弧のカタマリなんて出遭ったら発狂するだろ

582 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 23:55:14.01 ]
なんだ。やっぱプロジェクトで使われないから、そういうルールもないのか

ポール・グレアムはlispでサイト作ってたんでしょ
「 10人のLispハッカーが集められないようなら、 たぶんあなたの会社はソフトウェアを開発するのに適さない都市にいるんだ。」とか言って
結局ヤフーにM&Aされて書き換えられたんだっけ

583 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 23:59:16.46 ]
組み込むにしてもGCの無い軽い言語入れちゃうし、
あえてlisp入れてもそれほど面白くない

584 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 00:18:41.49 ]
マクロ禁止してまでLisp使う意味があるか疑問。それなら他の言語使えば良い。
JavaとかPythonとか、自分の足を撃ち抜きづらい言語が他にあるんだし。

具体的に、どんなマクロが可読性を下げると感じるのかには興味がある。
if*が気に喰わないとかならまあ理解できるけど、aifとかなら賛成できない。

あと、旧ITAとかMSIとか、プロジェクトで使っているとされる所は普通に存在するし、
そもそもFranzとかSBCLとかCCLの処理系開発者連中自体が複数人で開発してる。
興味があるならMSIのセミナーでも行ってみれば良いんじゃない。



585 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 00:21:33.42 ]
>>584
if*ってどんなマクロなの?

586 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 00:24:30.65 ]
一貫した構文がないこと自体、可読性が低いと思うけど、違うの

587 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 00:25:22.08 ]
>>585
こういうの。個人的には最高にキモいと思うけど、好みは人それぞれなので否定はしない。

cadr.g.hatena.ne.jp/g000001/20100529/1275126086

588 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 00:41:18.98 ]
まあ普通はPython使うけども、後学のために使ってみた
いずれにせよ書き捨て用だけど

589 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 01:06:01.08 ]
>>586
関数で抽象化するのと、マクロで抽象化するのと、どう違うかな?
どちらも特定の入力を受け、特定の出力を返すものだけど。
構文特有の話ではなくて、実は抽象化の設計自体が悪かったりしないかな?

もちろん、Cで{ }をBEGINとENDにするような、ああいう単なる置き換えについては、
批判が付いて回るのも当然だと思うけど。こういうの。

www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.8.2.html

>>588
Paul Grahamのエッセイでも読んだ?
Lisperの可読性に対するスタンスとかは、そのGrahamのこれなんかが参考になると思う。

practical-scheme.net/trans/power-j.html

この著者、しばしばPythonを引き合いに出してdisってるように見えることもあるけど、
別に嫌ってないし、一定以上の評価を与えてるから、それは勘違いしないで。

590 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 01:16:02.46 ]
お前みたいな抽象化された脳みそでは同じに見えるんだろうけど
名前付きの関数と新しい構文では、普通は次元が違うと捉えるだろう

別にポール・グレアムはPythonをdisってないよ。lisp化してるとか言っちゃってるし
ただPythonにあまり詳しくないだけ

591 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 01:17:43.42 ]
>>587
ありがとう
うーん、こういう使い方があるのかと驚いた
使い込めばloopのようにしっくり来るようになるかも…?

>>588
Norvigの話をふと思い出した
((Pythonで) 書く (Lisp) インタプリタ)
www.aoky.net/articles/peter_norvig/lispy.htm

592 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 09:55:56.57 ]
>>589
arcを触った後にまた読むと読み方も変わるね。

真面目に(簡潔さの)プログラミング言語の比較をやるのはおもしろいのかもしれないなあ。
「(1)一ヶ月かかるプログラムで比較しろ」と言うけど、「(2)プログラミング言語間の相対
的な力を正確に比べるのはまず不可能だということになる。」とも言っているから(1)を
大きいシステムで試せという話に置き換えて、ちょっと小ぶりだけどLispの処理系作りで
試すのは良いことかもしれない。
So any language comparison where you have to meet a predefined spec is testing
slightly the wrong thing.
(だから、あらかじめ決められた仕様に合わせてコードを書くという形式の言語間の比較は、
少し的を外している。)
とあるけど、slightlyなわけでLispの処理系作りでいいんじゃねえと思った。いや、むしろ
比較しやすいシステムな気がする。
あと最初に仕様がまったくないシステムなんてないだろ。未知の問題があったとしても既存の
解法のベースがあってそれを応用して解くわけだし。天才数学者をさんざん殺してきたフェル
マーの定理クラスの問題を解くという話なのかな。言語で解ける射程距離って意識下/無意識
下で分かって解くことが始まるから仕様って頭の中にあるよね。

593 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 10:15:39.39 ]
>>591
Lispインタプリタを実装できないPythonは糞だな。

594 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 15:10:09.06 ]
>>593
誤読も甚だしい。



595 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 17:38:24.52 ]
PythonでR5RSを実装できんのかよ。

596 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 18:22:09.88 ]
できないと思う理由は?

597 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 18:42:17.58 ]
R5RS準拠Schemeすら実装できない汎用言語って存在し得ないだろw
Schemeよりよっぽど複雑なPython処理系をPythonで書いたりしてるのに。

598 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 19:15:47.95 ]
よっぽど複雑なPython処理系って具体的に何よ。

599 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 20:00:19.76 ]
>>598
その解釈はこちらの意図と違う。「よっぽど複雑な」が掛かるのはPython。

Pythonで実装してるPythonが知りたいなら、例えば名前がエロいPyPyがそう。
PyPyとかPychinkoとかPython使いエロ過ぎ。

Lisperももっとエロくなる必要があると思う。pgのeroとかじゃエロさが足りねーよ。

600 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 20:21:19.81 ]
今、man perlして気づいたんだけど、man perl*の充実ぶりってすごいなあ。
日本ローカルだけでman lisp*って充実しないか。manで引けるって便利だよなあ。
ドキュメントの置き方的に問題があるのかもしれないけど。
Overview
perl Perl overview (this section)
perlintro Perl introduction for beginners
perltoc Perl documentation table of contents
Tutorials
perlreftut Perl references short introduction
perldsc Perl data structures intro
perllol Perl data structures: arrays of arrays
perlrequick Perl regular expressions quick start
perlretut Perl regular expressions tutorial
perlboot Perl OO tutorial for beginners
perltoot Perl OO tutorial, part 1
perltooc Perl OO tutorial, part 2
perlbot Perl OO tricks and examples

601 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 20:21:44.31 ]
600ぺりか

602 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 20:23:45.48 ]
おらの600ぺりかがあ・・・・

603 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 22:04:57.56 ]
>>599
ooopyもあるんだぜ。そりゃホルスタインは男の夢だが

604 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 22:05:57.51 ]
質問です。
'((A B C D) (E F G H) ...) -> '(A B C D E F G H ...)
の加工を行いたいのですが、関数をどのように組めばいいですか?



605 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 22:06:24.57 ]
>>604
appendか?

606 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 22:14:51.32 ]
>>604
Common LispかSchemeかは知らないが、appendをapplyすればおk。
ただし、関数の引数の最大数の制限に掛かるから、巨大なリストには他の方法を使うこと。

www.aiai.ed.ac.uk/~jeff/lisp/cl-pitfalls から引用すると、

(reduce #'append list-of-lists :from-end t)
(mapcan #'copy-list list-of-lists)

とか。Schemeならfold系の手続きを使えばreduceと同じことができる。

607 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 22:16:22.30 ]
っと。肝心なapplyの例載せ忘れたよ。

(apply #'append '((0 1 2) (3 4 5)))
;=> (0 1 2 3 4 5)

608 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 22:23:30.49 ]
とりあえず、LispでエロいっていうとS式を受ける引数によく使われるsexpは外せない。

609 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 22:30:15.72 ]
>>608
cofee-p のあれからいくと...


610 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 23:36:00.24 ]
mapappendていう関数があったような
なかったような


611 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 23:39:39.27 ]
あー、中でapplyしてんのか
失格だ
(define (mapappend func . args)
(if (memv '() args)
'()
(append (apply func (map car args))
(apply mapappend func (map cdr args)))))


612 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 23:54:23.19 ]
sexp と書くのはためらわれるので、自分で書くときは sxp と書いている。

613 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 23:58:17.69 ]
>>609 nil って答えられると困るじゃないか


614 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 00:25:28.38 ]
>>609
同性どうしならヤダな。



615 名前:デフォルトの名無しさん [2011/12/26(月) 00:45:26.84 ]
PyPi
PyPy
Pychinko
Pypants

616 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 00:57:03.26 ]
おいおい。パンツまであるとかレベルたけーな。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<245KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef