[表示 : 全て 最新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/

445 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 02:18:53.89 ]
ごめん。ひとつ大事なこと思い出した。

dotimesとかもそうなんだけど、dolistは

www.lispworks.com/documentation/HyperSpec/Body/m_dolist.htm#dolist
> It is implementation-dependent whether dolist establishes a new binding of var
> on each iteration or whether it establishes a binding for var once at the
> beginning and then assigns it on any subsequent iterations.

って決まってて、処理系によってはループ変数が破壊的に変更される可能性がある。
そういう場合にクロージャとかでその変数を捕捉すると悲劇が起こる。

具体的にはこう(↓)なる。

blog.practical-scheme.net/shiro/20060110-for

mapcは引数で渡すからこの問題は起きないはず。これは覚えておいた方が良いかも。


446 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 12:05:04.37 ]
動作がよくわからないので質問させてください。

(case 0 ((0) 1))
→ 1
になるので
(case 0 (((if #t 0)) 1))
→ 1
になって欲しかったのですが
→ ()
になってしまいます。

case が eqv? で比較してるので
(eqv? 0 (if #t 0))
が #f になるかと思ったんですが、これは #t になります。

case 文の 条件部分(呼び方がわかりません。)に
if 文を使うことはできないんでしょうか?

447 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 12:21:55.04 ]
>>446
(define a 0)
(case 0 ((a) 1))
-> ()
(case 'a ((a) 1))
-> 1

448 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 19:06:31.53 ]
>>446
case の条件部分はただのデータで、評価されない。
なのでその書き方は 0 という整数と (if #t 0) というリストを比較している。


449 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 20:18:39.48 ]
>>446
今度からそういうときはcondを使ってね

450 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 20:30:54.67 ]
ウズウズ

451 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 21:34:09.97 ]
>>447-449
レスありがとうございます。
condを使えば思ったとおりに動かすことが出来ました。

452 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 19:26:16.97 ]
この英語2chはなんなんだ。微妙に活気があるんだよなあ。
ttp://dis.4chan.org/tech/

453 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 19:36:34.40 ]
海外のオタクが双葉を元にしたサイトだよ



454 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 00:23:20.84 ]
schemeで画像扱う時って普通にvectorのvectorにするものなの?

455 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 03:12:38.88 ]
u8vectorで

456 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 23:59:47.79 ]
M.Hiroi's Home Page / xyzzy Lisp Programming
www.geocities.jp/m_hiroi/xyzzy_lisp/abclisp02.html

listの説明の図がわかりやすいです
画像ならまだしも、テキストでセルの要素を表現できることに驚きました
このような図を作成するにはどういうツールを使えばよいのでしょうか

457 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 00:18:56.26 ]
そのサイトの管理人に聞いたほうが早いんじゃね?

458 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 01:33:40.73 ]
まあたぶんテキストエディタで手書きだと思うけど

459 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 02:15:31.71 ]
xyzzyの罫線モードとかじゃないの

460 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 04:05:42.47 ]
lispはHaskellなんかと比べるとちゃんとした関数型言語じゃないって言う人がいますが、どうですか

461 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 04:49:30.79 ]
>>460
副作用のある関数が普通に書けるからじゃろ


462 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 12:42:42.40 ]
Haskellは副作用をする部分を隔離してるもんな。そこで副作用させてる
から、あるなし論争があるけど、ML系でも異色でちょっと取り扱いづらい
けど人気があるよね。モナド信仰なんだろうかな。サクサク作っていける
部分もある。

463 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 17:43:52.85 ]
c++とlispはマルチパラダイム言語



464 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 18:04:26.40 ]
プログラミングGauche の第15章 テキストの構築を読んで
sxml形式で記述した外部ファイルを読み込み
xmlに変換して他のファイルに出力したいと思いました。
ですが、方法がわかりません。

sxmlのデータが*sxml-data*にあるとき
(use sxml.serializer)
(print (srl:sxml->xml *sxml-data*))
とすればxmlのデータを整形して出力することと、
返還後のxmlデータが*xml-data*にあるとき
(with-output-to-file filename
(lambda ()
(format t "~A" *xml-data*)))
と書くとfilenameで指定したファイルに*xml-data*が書き込まれるだろうことはわかりました

ここで行き詰まったのは外部sxml(*.scm)を読み込んで変換し出力するという処理の
とくにはじめの部分と処理全体です

(with-input-from-file filename...)
で読み込んだファイルを一文字ずつや一行ずつ処理できるのはわかったのですが、
一度に読み込む方法はあるのでしょうか

最終的には
karetta.jp/book-node/programming-gauche/197708
の「SXMLでは次のとおりに記述します。」直後のコードを保存したファイルを読み込み、
それを別ファイルにxmlとして保存する関数を作成したいのですが
可能でしょうか?

465 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2011/12/11(日) 20:04:04.39 ]
>>464
read

466 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2011/12/11(日) 20:28:21.93 ]
>>460
関数型とは何かという明確な定義は無いので、ちゃんとしたというのがどの程度のことを言うのかで判断が分かれると思いますね。
Haskell が「純粋関数型」と呼ばれることからもわかるように、その逆の純粋でない関数型もあるわけで。
純粋でないことを以ってちゃんとしてないというのであれば「そうですね」という感じかなぁ。

純粋とそうでないのとを分ける基準があるのかもよくわかりませんが、
あたりまえに副作用を起こせるのを純粋とは言えないのは間違いないでしょう。

そもそも LISP は何でも有りの自由なところが特徴だし、
Common Lisp や Scheme はマルチパラダイムを標榜してもいるので、
LISP という言語が関数型としてどうかという問いはあまり意味がないですね。

あなたがそうしたければ純粋関数型的な語彙を組立ててそのスタイルを貫く自由は与えられています。

467 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 23:36:25.04 ]
>>465
ありがとうございます

468 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 06:30:20.68 ]
lispの特徴はS式構文でしょ。

469 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 11:33:48.29 ]
昔はGCとかSchemeの継続とか強力なOOシステム(Flavors, CLOS)も特徴だったけど、
今は他の言語でも見られるしね。S式+マクロはLisp族だけだね。

470 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 11:34:43.39 ]
ADTを直接記述出来る事かと。

471 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 14:14:41.71 ]
リストの操作で質問します
(val (lis1) (lis2 (lis3)))
このリストに別のリスト(lis4)を追加して
(val (lis1) (lis2 (lis3) (lis4)))
のようにlis2のリストの末尾に追加したいです
そのあとで追加したリストも
(val (lis1) (lis2 (lis3) (lis4) (lis5) (lis6)))
というふうに後ろに挿入したいのですが、
どういう操作をすればよいでしょうか

472 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 14:57:15.97 ]
>>471
そういうことをやりたくなるってことは、リストが分かってないってこと。

473 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 19:27:28.75 ]
深いすなあ



474 名前:デフォルトの名無しさん [2011/12/12(月) 21:30:27.25 ]
(set-cdr! (last-pair (caddr ls)) (cons ls7 '()))

475 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 22:17:16.53 ]
(setq l '((1) (2 (3))))
(defun append-tail (l m)
(append (list (first l))
(list (append (list (first (second l)))
(list (append (second (second l))
m))))))

CL-USER> (append-tail l '(4))
((1) (2 (3 4)))
CL-USER> (append-tail (append-tail l '(4)) '(5))
((1) (2 (3 4 5)))
CL-USER> (append-tail (append-tail (append-tail l '(4)) '(5)) '(6))
((1) (2 (3 4 5 6)))

476 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 22:24:46.15 ]
>>474
意図した通りに動きました!ありがとうございます


477 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 22:31:47.17 ]
>>475
副作用無しのその動作も魅力的です
ありがとうございます

478 名前:475 mailto:sage [2011/12/12(月) 22:45:13.92 ]
ちなみにこの形だとpush, popが使えて楽だよ。
CL-USER> (setq n '(((3) 2) (1)))
CL-USER> (push 4 (first (first n)))
(4 3)
CL-USER> n
(((4 3) 2) (1))
CL-USER> (push 5 (first (first n)))
(5 4 3)
CL-USER> (push 6 (first (first n)))
(6 5 4 3)
CL-USER> (push 7 (first (first n)))
(7 6 5 4 3)
CL-USER> n
(((7 6 5 4 3) 2) (1))
CL-USER> (pop (first (first n)))
7
CL-USER> n
(((6 5 4 3) 2) (1))

479 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 22:52:01.53 ]
>>471
リストをひとつのオブジェクトに見立ててるように見えるけど、
そういう場合は、各要素へのアクセサを定義した方が良いよ。
単純になるし、保守性が良くなる。

あるいは、素直にクラスとか構造体、レコードで定義した方が楽。
単なる演習とかならどんな書き方しても良いと思うけど。

480 名前:475 mailto:sage [2011/12/12(月) 23:42:26.08 ]
>>471
具体的に書いてよ。
中高一貫校の中学1年生が英作文の問題を必死こいて解いている子に関係代名詞を使うとシンプルな文章になって
読みやすいよと言われても語彙や文法を知らないのですよ。Web参考書は揃っているんだけどw

481 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 00:18:03.51 ]
>>480
詳しく説明するのが面倒だった。食いついて来たら説明する予定だったけど。
てーか取り敢えず落ち着けよ。明後日の方向に弾飛んでんぞw

(define (value-name v) (cadr v))
(define (value-value v) (caddr v))
(define (set-value-name! v x) (set-car! (cdr v) x))
(define (set-value-value! v x) (set-car! (cddr v) x))

(define *x* '(value "x" ()))

(value-name *x*) ;=> "x"
(value-value *x*) ;=> ()

(set-value-name! *x* "y")
(set-value-value! *x* (append (value-value *x*) (list 0 1 2)))

(value-name *x*) ;=> "y"
(value-value *x*) ;=> (0 1 2)

こういうイディオムのこと。クラスやレコードはそれらのWeb参考書読んでくれ。

482 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 00:23:05.99 ]
いや、イディオムってのも変か。パターンとか常套手段でひとつ。

なんでもリスト使うようなプロトタイプを最初に作るときとか、
後でデータ構造を差し替えたり、コードの可読性を上げるためにやるでしょ?

483 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 00:47:15.15 ]
Schemeで書いたのは、いじめか。

Python使いにRubyで答えればプログラマとしての幅も広がるし、良いことづくしだ。



484 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 00:52:58.74 ]


485 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 00:56:25.81 ]
いやいやいやいや。>>474の人もSchemeだけど、「動きました!」って言ってんじゃん!
そもそもCommon LispともSchemeとも書いてないんだから。

マジレスすると、CLerだった場合はset-car!をrplacaに読み替えれば分かると思います。
普通は汎変数使うと思うけど。

486 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 03:25:02.31 ]
schemeは教養だから
CLerは当然schemeぐらい読めるから

487 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 07:57:52.15 ]
Cは教養だから万行デバッキングできるよね

488 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 09:49:08.78 ]
racketはset-car!がありません

489 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 09:50:25.93 ]
set-mcar! があるだろ。

490 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 22:15:12.19 ]
Lisp方言で良いなら教養としてarcで書くのもあり?
gaucheに接近するかと思ったら全然ダメだな。
arc> (time (tarai 12 6 0)) ;; arc3.1
time: 11241 msec.
arc> (time (tarai 13 7 0))
time: 83869 msec.

> (time (tak 12 6 0)) ;; Racket
cpu time: 197 real time: 197 gc time: 0
> (time (tak 13 7 0))
cpu time: 1480 real time: 1481 gc time: 0
> (time (tak 14 8 0))
cpu time: 11046 real time: 11047 gc time: 0

gosh> (time (tak 12 6 0)) ;;gauche
; real 0.715
; user 0.710
; sys 0.000
gosh> (time (tak 13 7 0))
; real 5.214
; user 5.220
; sys 0.000
gosh> (time (tak 14 8 0))
; real 38.301
; user 38.060
; sys 0.000

491 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 08:06:59.33 ]
Racket 速いな。

492 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 09:29:29.96 ]
そりゃ、JIT搭載だもの。

docs.racket-lang.org/guide/performance.html#%28part._.J.I.T%29

493 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 10:04:57.25 ]
やだ Racket 格好いい……



494 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 13:17:09.14 ]
既出した気がするけどこういうのもあるよ。
ttp://www.cs.utah.edu/~mflatt/benchmarks-20100126/log1/Gambit_20benchmarks.html
ttp://www.cs.utah.edu/~mflatt/benchmarks-20100126/log2/Benchmarks.html

495 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 18:59:12.22 ]
387 名前:デフォルトの名無しさん[sage] 投稿日:2011/11/28(月) 14:59:20.86
馬鹿はお前だろうw
shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=racket&lang2=lua

496 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 17:39:51.40 ]
lisp.soup.io/post/8879455/Still-from-Serial-Experiments-Lain-via-lain
これって、life関数を呼び出すたびにworldを作っているのか…


497 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 18:37:41.57 ]
>>488
sicpプラグインではあるけど、set-mcar!をエイリアスしてるみたい

498 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 21:43:56.97 ]
Lisperがgcc on LinuxでCの手習いで何かの分野の処理をやるとしたら何の分野がいいかな?
コーディングがマゾい奴はやりたくない。うひょー、コーディング楽しいって感じの週末にしたい。

499 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 22:48:59.80 ]
LISPインタープリタの原始的なやつを作る。

500 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 23:05:37.17 ]
つまらん

501 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2011/12/16(金) 23:17:28.13 ]
そしてその LISP で本格的な LISP 処理系を作る。

502 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 23:20:12.36 ]
つまらん

503 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 04:11:27.04 ]
>>498
マルチ死ね



504 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 04:39:57.42 ]
>>499
だからマゾいの嫌だって言っているでしょ。インタプリタならlispで書いた方が楽でしょ。
Cで文字列処理はしない方が良いと思っているんだけど、偏見かな。
>>501
つまらないし、目的がみえてこない。

505 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 04:47:17.36 ]
自分で考えたら?

506 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 04:55:38.30 ]
>504
おまえは499を否定しているがハードウェアべったりの処理系でGC付き言語を組むとかなり楽しいのだが。
GCは奥が深いぞ

507 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 06:08:02.26 ]
>>504
どうせなにも出来ないから黙っとけ。

508 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 13:38:40.94 ]
>>504
マゾいのが嫌だっていうから原始的なやつって書いたのに。
そもそも手習いが目的なのに「〜の方が楽」とかアホだろ。


509 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 00:07:58.23 ]
>>504
>Cで文字列処理はしない方が良いと思っているんだけど、偏見かな。

はい

510 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 00:19:37.39 ]
必要な時に出来ないのは、偏見ではなく無能。

511 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 02:03:36.80 ]
プログラムを組むときに一番大事なのは用件を最短で満たせる適切な言語を選ぶことだけど
プログラムを楽しく組む為に必要な事は「いつでも初心でいられる」事だと思っている

そんなわけで>>504 はこの土日もグズグズすると感じてしまうのであった。

;;;仕事でもプライベートでもプログラムを書くのを楽しくするコツは2行目ね


512 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 02:20:46.27 ]
ずいぶん参考になった
ほんとうにありがとう

513 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 07:27:48.68 ]
schelogってGPLなの?
schelogをrequireしたらソース公開しないといけないの?



514 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 09:12:28.02 ]
wiki.call-cc.org/eggref/3/schelog
これを見る限りではLGPL
LGPLは(GPLも)プライベートな利用では何の条件も要求しない
頒布する場合に条件が要求されるが、具体的な条件はお前のコードとSchelogを「リンク」する方法による

515 名前:デフォルトの名無しさん [2011/12/19(月) 15:37:56.70 ]
LLGPL(Lisp-LGPL)とBSDライセンスのそれぞれのライブラリを使うアプリケーションを作り
(clispとsbclの2パターン)
lisp処理系をインストールせずに使えるよう
実行バイナリ化して配布しようと思うのですが、
配布する際のライセンスは結局どうなるのでしょうか
lisp処理系とライブラリのライセンスそれぞれの影響がよくわかりません

使うのは↓のライブラリです
www.cliki.net/Clack
www.cliki.net/CL-PPCRE

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 ]
コードランダム化のコードを
誰か公開したりしらいいなあ






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

前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