集合論に基づいた言語を作りたい

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2014/08/10(日) 21:27:16.56ID:x7G32Sd0
計算機科学の基礎は集合論であるという。
ならば、集合論に基づいた言語を作れば美しい言語になるのでは?
そんな発想から徹底的に集合論的思想で言語仕様を考えるスレです。
2014/09/05(金) 22:27:04.06ID:vJ702ivD
>>172
へー、consセルのcarに破壊代入するかわりに
cdrをコピーせずに新しいcarだけを追加するのかい?

そりゃすごいねえ
2014/09/05(金) 23:09:43.43ID:rtobVFDF
>>173
リストの丸コピーの定義書いてみ
まあ、まともな精神なら恥ずかしくて書けないだろうけどな w
2014/09/06(土) 09:24:36.23ID:2eQ4pr9G
>>174
consセルの丸コピーの定義書いてみ
自分の馬鹿さが明らかになって恥ずかしすぎて書けないだろうけどなw
2014/09/06(土) 09:26:57.68ID:2eQ4pr9G
つーかconsセルに破壊代入する関数型言語なんて腐る程あるし
この馬鹿は何を自慢したいのだろう?馬鹿すぎて理解できない
2014/09/06(土) 09:48:13.12ID:VC7+V5v8
>>175
書けないわけね
まあ、そりゃそうだわな w
2014/09/06(土) 19:13:42.33ID:2eQ4pr9G
おー、華麗な勝利宣言だwww




キモ!
2014/09/06(土) 21:11:07.40ID:VC7+V5v8
>>178
キモとしか書けなくて悔しいね w
2014/09/07(日) 08:03:05.89ID:EoKvJO+q
ハスケラって初心者のくせにハスケル知ってるというだけでエラソーしてるけど
あれって宗教か何かなのか?
181
垢版 |
2014/09/07(日) 23:47:31.57ID:9dp9vcbI
関数型言語やりたいならOcamlよりHaskellお勧め?
>>123のコードは副作用ありまくりなんだが。
2014/09/08(月) 07:21:00.89ID:j836SLcH
>>180
ガキにありがちな行動だろ
スルーしとけよ
2014/09/08(月) 11:55:44.86ID:cPc63HcT
関数型言語の中では副作用がある言語のほうが主流だろ。
LISPやSchemeやSMLやOCamlなど。
2014/09/08(月) 12:03:45.51ID:kaEhSBtj
副作用、代入ありは、関数型記述もできる手続き型。
2014/09/08(月) 12:08:09.21ID:uHpNxeFr
純血主義ならhaskellで
2014/09/08(月) 15:22:32.10ID:pVr2+nKJ
関数型言語は使うなと何処かの先生が言ってたぞ。
関数型と言うのは単にプログラミング手法であるから言語なんてつけるなと言うことらしい
2014/09/08(月) 17:26:33.52ID:uHpNxeFr
>>186
kwsk
2014/09/08(月) 18:04:23.92ID:pVr2+nKJ
>>187
関数型プログラミングは本当に難しいのか
http://itpro.nikkeibp.co.jp/article/Watcher/20121001/426555/?ST=smart
『関数型言語』を使ってはいけない」との発言が飛び出したのだ。
2014/09/08(月) 18:23:47.23ID:kaEhSBtj
純粋関数型はプログラマの技法のためでなく
コンパイラ、ハードウェアのためだろ。
プログラマにとっては使いにくいが、
手続き、順序がないことで、機械が並列処理しやすい。
順序があると、先の手続きが終わるまで待たないといけない。
2014/09/08(月) 19:14:00.85ID:cPc63HcT
>>189
逆。
純粋関数型言語はプログラマのための技術だ。
関数型言語の並列化は何十年も昔からの研究テーマだが
未だに実用的な決定打が出ていない。
2014/09/08(月) 19:20:10.71ID:kaEhSBtj
プログラマのためなら、手続き型も使える関数型、関数型もも使える手続き型というハイブリットのほうがよく
厳しい制約をつけることはない。値の書き換え不可能は便利でない。
192
垢版 |
2014/09/08(月) 19:36:06.54ID:ZbTP8aJt
いつの間にか関数型言語スレになってしまったな。
まあ寄り道もいいか。
193
垢版 |
2014/09/08(月) 20:53:29.01ID:ZbTP8aJt
無知をさらすようだけど、チューリングマシンで一回テープに書き込んだらそのメモリは書き換えられないマシンがあったら、それはチューリング完全になる?
2014/09/08(月) 21:12:35.82ID:0BEKcfFo
直感的には、規則は面倒になりそうだけど「テープはいくらでもある」というのが
チューリングマシンの前提だから、問題ないんじゃない?
195
垢版 |
2014/09/08(月) 21:17:06.30ID:ZbTP8aJt
直感的にはそうなんだけど、じゃあ一回しかメモリに書き込めないマシンでチューリングマシンをシミュレートしてみろって言われると俺には無理。
2014/09/08(月) 21:53:22.17ID:YW1sNfFx
>>186
そういう先生は先生として失格なので無視していい
2014/09/08(月) 23:28:07.41ID:0BEKcfFo
てゆーか、文脈を無視して取り出すな危険、系だろ
2014/09/08(月) 23:46:25.48ID:nnXcaq6b
>>180
ナゼ突然に Haskell という名前を出すのか意味不明だなぁ
不変オブジェクトによる計算は、ML や Lisp のように破壊的代入が可能な
不純関数型言語でも重要な概念であり、基本のプログラミング・スタイルだよ
特に>>159のプレゼン内で紹介されているオカサキ氏の書籍では、
すべてのコードが Standard ML で書かれているのに、いったい何を言いたいのだろう?

おそらく>>180の頭の中には「関数型言語 == Haskell」という等式が
あるんだと思うけど、>>180のようにあらゆる関数型言語がHaskellに見えてしまう
ニワカな自称Haskellプログラマを指して「ハスケラ」と呼ぶんだがね
2014/09/08(月) 23:54:48.92ID:nnXcaq6b
>>186,188
ソースが 日経ITpro だろ
ここは以前(2006年)にも「本物のプログラマはHaskellを使う」という煽り記事を書いて、
記事に踊らされた糞ハスケラを量産した張本人だよ
そして今度(2014年)は「『関数型言語』を使ってはいけない」とは、
その変わり身の速さに大笑いするね

>>186,188が、またITに無知なマスゴミ記事に踊らされたいのかい?
日経新聞の中国賞賛記事に煽られて進出した日本企業のように....
2014/09/09(火) 05:57:09.86ID:ukX/qMIS
単に172みたいなシッタカはハスケラが多いという経験則なんじゃね?
実際、シッタカ多いだろ、ハスケラ界隈。
2014/09/09(火) 06:01:06.48ID:ukX/qMIS
つーか、158に書いてある程度の永続データ構造は
不純関数型どころか手続き型でも普通に使われている。
それをいちいち関数型特有の技術であるかのように言いふらすのか。
ルビ厨と同類だなw
2014/09/09(火) 10:33:24.25ID:iSgMgqSE
> 実際、シッタカ多いだろ、ハスケラ界隈。

うん。カタカナで書く奴とか、>>199 のように、長期連載記事を全くそれと認識できてない
ほどのニワカだということを自分で自慢して自爆しちゃう奴とか。
2014/09/09(火) 14:38:16.53ID:ukX/qMIS
>>199と、「本物のプログラマは…」が長期連載記事であることは全く矛盾しないけど、
どうして>>202は199は長期連載と認識していないと思い込んじゃったのかな?
エスパーですか?
2014/09/09(火) 23:09:21.92ID:u4pMEKRn
>>201
ほう、「>>158に書いてある程度の永続データ構造は
不純関数型どころか手続き型でも普通に使われている」のか、それは知らなんだ

関数型を名乗る言語の大半では(=少なくとも自分の知る限りすべての関数型言語では)、
始祖 Lisp の時代から本質的に永続性を持つリストと呼ばれるデータ構造を基本としている
だから関数型言語では、普通に(=暗黙のうちに)永続データ構造が使われていると言える(>>172)

一方、手続き型言語で基本的なデータ構造といえばレコード(=構造体)と配列だと思うけど、
>>201の住んでいる異次元世界では、レコードや配列が永続データ構造で実装されているんだね
興味深い話だから、ぜひ kwsk 説明してもらえると嬉しいなあ....(棒
2014/09/09(火) 23:32:43.42ID:iSgMgqSE
見事に知ったかが消えたな
2014/09/10(水) 07:01:46.89ID:nz1QrfPP
>>204
知らないって、幸せなことなんだなあw
ある言語で永続データ構造が使えるからといって、
その言語の全てのデータ型が永続データ構造で実現されていることにはならないことぐらい
中学生レベルの論理を知っていればわかりそうなものなんだけどなあw

copy on write的なデータ構造は多くの手続き型言語のライブラリで使われていて
そこにはLISPで培われた永続データ構造の技術が使われてるよ。
2014/09/10(水) 11:12:44.60ID:2lSvEqyn
どんどん言ってることがズレてくな
2014/09/10(水) 11:51:44.84ID:2N2PVK/b
関数ムラの住民は世間が狭いね
2014/09/10(水) 22:45:00.45ID:MIzNsnl2
>>204
> copy on write的なデータ構造は多くの手続き型言語のライブラリで使われていて

ほう、これまた面白い話が聞けた
>>206がいる異次元世界だと、その「copy on write的なデータ構造」を使う
ライブラリが手続き型言語プログラマの間では「ふつうに(>>201)」使われているんだ

関数型言語で「ふつうに」リスト操作している(>>172)のと同様に
手続き型でも永続データ構造が使われているとは、
>>206のいる異次元世界はプログラマにとって理想郷だね!!(棒
210桃白白 ◆9Jro6YFwm650
垢版 |
2014/09/10(水) 22:56:17.03ID:6zdXUVOl
>>209
Stringとか
2014/09/10(水) 23:05:15.07ID:MIzNsnl2
>>210
String は単純型だからデータ構造やライブラリには含まれない
もし String を含めるのなら Integer もデータ構造の一種になってしまう
212桃白白 ◆9Jro6YFwm650
垢版 |
2014/09/10(水) 23:08:58.07ID:6zdXUVOl
>>211
単純型ってなんすか?
BigIntとか
2014/09/10(水) 23:20:47.47ID:MIzNsnl2
>>212
単純型とは、他の型から構成されることのないデータ型であり、
文字列型の他には、論理型、文字型、列挙型、数値型がある
関数型言語の Lisp や論理型言語の Prolog だとアトムとも呼ばれる
214桃白白 ◆9Jro6YFwm650
垢版 |
2014/09/10(水) 23:22:03.29ID:6zdXUVOl
>>213
他の型から構成されることがないってどういう意味っすか?
2014/09/10(水) 23:32:19.53ID:MIzNsnl2
>>214
たとえばレコード型(C言語であれば構造体)は、
単純型、配列型、別のレコード型といった「他の(複数の)型から構成」される
また配列型も整数型、文字型、レコード型といった「他の型(の反復)から構成」される
そしてレコード型や配列型は、要素となった他の型に分解できる

それに対して、単純型は「他の型から構成されることがない」
言い換えると、単純型は(他の型へ)分解できない根源的なデータ型になる
>>213で書いたアトムも、物理学の(分解できない)原子が語源になっている
2014/09/10(水) 23:45:56.12ID:ADC46RWM
単純型‥もう、アーキュムレータとかその他レジスタに載る型、ということにしては?
2014/09/11(木) 06:06:05.80ID:/5wQig/e
>>211
Stringが内部データ構造を持っていたりライブラリで提供されている言語や処理系なんて山ほどあるだろ。
StringがCharのリストとして実現されている言語や処理系も多い。
関数ムラの住民はやっぱりムラの外の事情には疎いんだね。よーーーーくわかりましたw
2014/09/11(木) 10:27:37.46ID:ZRdF18oF
>>217
関数型でもCharのリストで扱う言語あった気が
2014/09/11(木) 12:11:59.58ID:/5wQig/e
むしろStringが単純型なのはLISP系ぐらいでは
2014/09/11(木) 12:59:06.68ID:ThP8Tlio
>>216 型理論(型システム)的には全く無意味だからそれ
2014/09/11(木) 12:59:52.98ID:ThP8Tlio
> 関数ムラの住民はやっぱりムラの外の事情には疎いんだね。よーーーーくわかりましたw

自分がバカっぷりをさらしてることはわからないんだねw
2014/09/11(木) 13:06:24.74ID:ThP8Tlio
ていうか、関数型ムラに居て、HaskellのStringが[Char]だと知らない奴がいるもんかw

あと、流石に効率が悪いことも多いってんで、最近はText型とその周辺の実装が進められてる。
2014/09/11(木) 13:39:24.40ID:/5wQig/e
ハァ?誰もHaskellの話なんてしていないぞ。

そんなにHaskellの話がしたければHaskellスレに行けば?
「Stringは単純型だと言ったらいじめられた〜」とか言えば
みんな同情してくれるだろw
2014/09/11(木) 14:10:25.16ID:AMEA56Qh
桃白白はVBScriptしか知らないからあの答えで合ってるの。
2014/09/11(木) 17:15:48.36ID:ThP8Tlio
> みんな同情してくれるだろw

おれは苛めてるんだ、と、自分を騙すのに必死なのかw
2014/09/11(木) 17:18:44.69ID:Eq/MhJWf
Stringが単純型しかないLisp以外の言語まだー?
2014/09/11(木) 19:02:59.76ID:ZRdF18oF
Stringがプリミティブな言語自体は存在するけど(手続き型ならBASICとかPerlとか)
>>211 はStringは単純型、と言い切っちゃってるからな
2014/09/11(木) 20:03:48.12ID:Eq/MhJWf
しかもBASICやPerlにしても文字列を内部実装として永続データ構造で保持してる処理系とか普通にあり得るし。例えばPerlのHaskell実装とか。
2014/09/12(金) 00:22:55.80ID:ke/j7I6c
で?
2014/09/12(金) 02:10:37.29ID:KXHcVpz6
元々なんの話だったんだっけか、よく分からんくなってきた
2014/09/12(金) 03:48:40.55ID:5DSOPRX8
結論
ハスケル村民は中二病
2014/09/12(金) 19:25:03.94ID:i5Uyd5M3
>>230
>>186参照
関数型言語の関数型というのはただの手法であって言語という程のことではないらしい
haskellは何言語と呼べばいいんだろう
2014/09/12(金) 19:43:34.87ID:ke/j7I6c
文脈のある文章を文脈から取り出してセンセーショナルに騒ぐ奴はバカ、でFA
2014/09/12(金) 19:54:30.05ID:i5Uyd5M3
関数志向宣言型プログラミング言語って呼べばいいのかな
2014/09/12(金) 19:55:16.20ID:i5Uyd5M3
誤字った
関数指向宣言型プログラミング言語
2014/09/12(金) 20:06:23.28ID:Iy5dUXcN
略して関数型言語
237
垢版 |
2014/09/13(土) 11:02:47.39ID:NSrcGDnS
connect4をみんな大好きhaskellに移植したぞ。
こんどこそ添削たのむな。

http://www.age2.tv/rd05/src/up4254.txt
238
垢版 |
2014/09/13(土) 19:54:59.71ID:NSrcGDnS
>>237のコードは一手打つたびに盤面を丸コピーしてると思うんだが
そこらへんコンパイラが上手いことやってくれてるの?
239デフォルトの名無しさん
垢版 |
2014/09/14(日) 00:53:22.93ID:N78ccrO0
囲連星で
2014/09/14(日) 07:25:06.11ID:3VDbXkPO
>>237
letのかわりにwhereで、
ifのかわりにパターンマッチで書き換えれば
Haskellっぽくなる。
241
垢版 |
2014/09/14(日) 10:08:34.40ID:rj6ubMt8
>>239
そんなに囲連星AIがほしけりゃ自分で作れよ。なんで人にやらせようとするんだよ。

>>240
添削ありがとうございます。
whereは変数を定義する前に参照してるみたいで気持ち悪いです。
まあ、慣れの問題なんでしょうが。
242デフォルトの名無しさん
垢版 |
2014/09/14(日) 15:18:34.44ID:sID153LP
最初のほうだけ読んだけど、
言語知らなすぎだろ。

それで言語作ろうなんて、10年早いわ。

もっとも、実用性なんてどうでもいい。
言語作ってみたいとか、作ることで、プログラミングというものを知りたいってのなら、
まったくもって問題無く、むしろ頑張れって感じだけど。
243
垢版 |
2014/09/14(日) 15:57:37.44ID:rj6ubMt8
>>239
ちなみに囲連星AIは昔作ったことある。
もっといえばゲ制作板の囲連星AIスレの380は俺だ。
ちなみに9路囲連星のGUIを作ったのも俺。
囲連星は一回やってもう挫折してるんだよ。

>>240
とりあえず、パターンマッチにしてみました。
letはそのまんま。だってwhereきもいんだもん。

http://www.age2.tv/rd05/src/up4284.txt.html

>>242

まあな。俺の実力じゃ実用的な言語を作るのは無理だろうな。
でもそれはほとんどのプログラマがそうだろ。
実用的な言語つくれるプログラマなんて一握りだろ。
もっといえば実用的な言語って一人で作れるようなものじゃないだろ。
244デフォルトの名無しさん
垢版 |
2014/09/14(日) 16:15:43.91ID:w3keaoOy
囲連星ってそんなに難しいか?
やってみるか。
245デフォルトの名無しさん
垢版 |
2014/09/14(日) 16:39:35.29ID:sID153LP
>>243
自分がそうだからって、
「ほとんど」とか、他の人を巻き添えに足引っ張るな。

自分の未熟さを棚に上げる愚かな行為だ。

RubyのMazsとか、言語オタクだぞ。

そうじゃなきゃ作れないってことだ。
246
垢版 |
2014/09/14(日) 17:59:15.91ID:rj6ubMt8
>>244

がんばれ、応援するよ。LV3越えは俺の悲願でもあるから。
だれかほかの人でも達成してくれたらうれしい。
できあがったらゲ制作の囲連星AIスレで報告してくれ。

>>245

そこでMatzみたいなスーパースター引き合いに出してどうすんだよ?
Matsは一握りかほとんどかで言ったら明らかに一握りだろ。
そのMatzにしたってRubyコミュニティの支えなしじゃここまでやれなかっただろ。
だいたいGoとかD言語みたいなスーパースターたちが作った言語だって
はたして「実用」と呼べるほどのユーザーを獲得してるかどうか。
言語をつくるって大変なことだと思うよ。
まあ、自分の未熟さを棚にあげてるのはそうかもしれんが。
247
垢版 |
2014/09/14(日) 18:14:29.35ID:rj6ubMt8
あら、MatzがMatsになってた。
誤字すまん。
2014/09/14(日) 18:30:48.41ID:s+BV7Cb9
新言語かぁ‥誰しも夢見るね‥haskell が圏論というのであれば、今後新言語を作るとすれば何を足がかりにすればいいのか?
2014/09/14(日) 19:26:12.34ID:r0J72yK/
Haskell自体は圏論ベースじゃないぞ。
モナドだけ。
2014/09/14(日) 19:33:25.07ID:s+BV7Cb9
そうなのか‥懐かしい名前、大熊正先生の著書をヤフオクでえらい高い値段でgetしてしまった(無論、読めやしない‥専門書って大変だね‥)が、無意味だったようだね
251デフォルトの名無しさん
垢版 |
2014/09/14(日) 20:19:23.00ID:NJi0vj84
集合論に基づく言語は、SIMDやメニーコアが発展していくうちに普通になると思うけど、
今は、C++をシンプルにした感じのスクリプト言語が欲しい。
まだ、集合論に基づく言語が手続き型を超える性能を出せる環境になってないから。
252
垢版 |
2014/09/14(日) 20:55:06.50ID:rj6ubMt8
結局、ハードの作りが根本から変わらん限り
C/C++を超える言語は現れないんじゃないかな。
超えるっていってもどういう意味で超えるのか微妙だけど。
2014/09/14(日) 21:30:29.03ID:s+BV7Cb9
C の言語仕様にキャリーフラグを含めてほしかった‥ちょっと今苦戦中
254
垢版 |
2014/09/14(日) 22:27:09.05ID:rj6ubMt8
C言語の言語仕様だけでキャリーフラグって実現できるんだっけ?
できるんだろうけど、ぱっと思いつかないな。
2014/09/14(日) 22:52:20.28ID:r0J72yK/
これ参考になるかも
ttp://d.hatena.ne.jp/tociyuki/20140906/1410012689
256
垢版 |
2014/09/14(日) 22:53:39.24ID:rj6ubMt8
最悪、すべての演算結果をテーブル化しておけば実現できるなw
効率的にはどうやるんだろう?
257
垢版 |
2014/09/14(日) 22:54:40.97ID:rj6ubMt8
おおっとリロードしてなかった。
258デフォルトの名無しさん
垢版 |
2014/09/15(月) 00:55:12.74ID:MGTym664
ts
259240
垢版 |
2014/09/15(月) 06:10:27.36ID:8SU9zqnx
>>243
たとえば、
let c = map digitToInt ( filter isDigit s)

let c = map digitToInt . filter isDigit $ "123"
にできる。
さらに、
s_to_line :: String -> [Int]
s_to_line = map digitToInt . filter isDigit
と関数を定義しておいて、
let c = s_to_line s
とすると、ググッとHaskellっぽくなる。
260
垢版 |
2014/09/15(月) 10:47:17.06ID:bIq53OoI
>>259
これが関数の合成ってやつか。
すごく…気持ち悪いです。
なれれば快感になりそうだが。
261
垢版 |
2014/09/15(月) 11:16:32.32ID:bIq53OoI
しかしOcamlよりhaskellのほうが書いててたのしいな。
なんでだろう?
2014/09/15(月) 15:28:20.49ID:kzUO2epp
写真には写らない美しさがあるから
2014/09/15(月) 16:34:50.30ID:kAk3iSbn
リンダリンダ〜♪
264
垢版 |
2014/09/15(月) 16:46:42.27ID:bIq53OoI
だれか>>243のコードのplayの関数を、一手打つごとに盤面を丸コピーしないで済むように改善してください。
よろしくお願いします。
265
垢版 |
2014/09/15(月) 20:32:54.71ID:bIq53OoI
>>259
修正しました。仮引数ないと違和感ありますね。
http://www.age2.tv/rd05/src/up4346.txt.html
266240
垢版 |
2014/09/16(火) 09:53:54.34ID:Qs6Ucf5H
>>264
http://hackage.haskell.org/package/matrix-0.3.4.0/docs/Data-Matrix.html
2671
垢版 |
2014/09/16(火) 19:15:18.40ID:bFn0xUvd
>>266
MatrixのsetElemは丸コピーじゃないの?
丸コピーじゃないなら参照透過性はどうなるの?
268デフォルトの名無しさん
垢版 |
2014/09/16(火) 19:28:35.09ID:i9frET+F
参照透過性は、プログラマが気にすることではない。
コンパイラ、言語が気にすること。
純粋関数型言語は、参照透過性に違反できないのが原則。
純粋関数型でコンパイルが通れば参照透過性がある。
269
垢版 |
2014/09/16(火) 19:43:03.56ID:bFn0xUvd
>>268
それじゃ丸コピー?
270
垢版 |
2014/09/16(火) 20:03:52.99ID:bFn0xUvd
setElemの計算量オーダーが書いてないな。
ほかのは書いてあるのもあるのに。
2014/09/16(火) 20:35:47.52ID:+Ut5bl5+
>>269
純粋関数型言語における配列の実装は、
一般的には B-Tree またはその亜種を用いるのが一般的
で、常識的には更新する要素とは無関係な部分ツリー(への参照)を
そのまま(更新後の)新しい配列に引き継ぐから、丸コピーにはならない
(Data.Matrixのソースを確認した訳じゃないんで、あくまで一般論であることに注意)
また、配列を利用するアプリケーション側でも、必要な複数の更新操作を関数合成で
まとめてから適用するのが一般的だから、更新のオーバヘッドもさほど気にならない

更に言えば、>>243のように(ライブラリを用いず)自前でリストを配列に見立てて
配列操作を実装するのは自由な選択だけど、メモリ効率を考慮しなければならないケースであれば、
(>>243のように)配列更新のたびにリストを丸コピーするのは、お馬鹿さんと言うしかない
リストの一要素だけを更新する時、更新した要素の tail リストは更新後のリストと共有できるはずだ

最後に、こういったパズル/ボードゲーム系の全解探索問題を記述する場合、何も考えず
ゲームの局面ごとに盤面全体を丸々コピーするコードを書いてしまうのは、純粋/非純粋な関数型に限らず
手続き型プログラミングであったとしても初心者レベルのコード設計力だと見なすしかない
通常、チェスや将棋のように膨大な空間を探索しなければならないゲームのプログラミングでは、
プレイの「一手(いって)」に関する情報だけを局面として記憶し、差分として管理する
272
垢版 |
2014/09/16(火) 20:55:03.92ID:bFn0xUvd
ふーむ。
たしかにツリーをつかえば丸コピーは避けられるかもしれないな。
勉強になりました。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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