パターンマッチを極限まで高めたら [無断転載禁止]©2ch.net

1デフォルトの名無しさん2016/01/06(水) 20:16:42.56ID:29zUzdnx
haskellとかにパターンマッチあるじゃん?

fib 0 = 1
fib 1 = 1
fib n = fib (n-1) + fib (n-2)

みたいなやつ

計算量とか無視してあれをもっと強力にしたら面白くね?

haskell だとリストが x:xs みたいなパターンマッチできるけど
xs ++ [a] ++ ys ++ [a] ++ zs (同じ要素を2つ含むリストにマッチ)
みたいなのもできるようにするとかどうなん?

2デフォルトの名無しさん2016/01/06(水) 20:34:38.40ID:gw5qUYko
< `∀´>ニダー

3デフォルトの名無しさん2016/01/06(水) 20:35:09.71ID:6+H/e4qg
なんだ正規表現かとオモタ

4片山博文MZ ◆T6xkBnTXz7B0 2016/01/06(水) 20:44:36.00ID:xlElYCtS
正規表現の配列版か?

実装は可能。

5デフォルトの名無しさん2016/01/06(水) 20:45:00.31ID:wURx2dCr
>>1
if-elseif-else 最強

6デフォルトの名無しさん2016/01/06(水) 20:59:07.00ID:29zUzdnx
正規表現かー。
正規表現をそのまま流用すればいい線行くのかな?

7デフォルトの名無しさん2016/01/06(水) 21:25:38.71ID:29zUzdnx
[ ] リスト
x 一個の要素
xs... 複数の要素
a|b a or b

[ x , xs... ] リストを先頭と残りに分解
[ 0 , xs... ] 先頭が0のリストにマッチ
[ xs... , 1 , yx... ] 1を含むリストにマッチ
[ xs... , xs... ] 同じ内容が繰り返してるリストにマッチ
[ xs... , a , ys... , a , zs ... ] 同じ要素を二つ含むリストにマッチ
[ xs... , 0|1 , ys... ] 0または1を含むリストにマッチ

8デフォルトの名無しさん2016/01/06(水) 21:26:26.53ID:29zUzdnx
計算量がやばいかな?
計算量はひとまず目をつぶろう

9デフォルトの名無しさん2016/01/06(水) 21:50:41.46ID:29zUzdnx
[ xs... , xs... ] 同じ内容を繰り返すリスト
って正規言語なんだっけ?忘れちゃった。

10デフォルトの名無しさん2016/01/06(水) 21:57:56.85ID:29zUzdnx
a=[1,2,3]
b=4
c=[5,6]

match([1,2,3,4,5],[a... , b , c...]) => true

11デフォルトの名無しさん2016/01/06(水) 21:58:51.25ID:29zUzdnx
ミスった
match([1,2,3,4,5,6],[a... , b , c...]) => true

12デフォルトの名無しさん2016/01/06(水) 22:02:27.82ID:dAXQ+tnq
配列にマッチとか需要あるのだろうか

13デフォルトの名無しさん2016/01/06(水) 22:06:01.20ID:29zUzdnx
a=[1,2,3]
c=[5,6]

[1,2,3,4,5,6].match{| [a... , x , c... ] | x } => 4

Ruby風に書いてみた

14デフォルトの名無しさん2016/01/06(水) 22:07:23.13ID:29zUzdnx
>>12
わからん。
場合によっては綺麗にかけるようになるものもあるかも。

15デフォルトの名無しさん2016/01/06(水) 22:17:11.90ID:29zUzdnx
あんまり正規表現にすり合わせようとしないほうがいいかもしれないな。
俺の勘だが。

16デフォルトの名無しさん2016/01/06(水) 22:44:46.34ID:29zUzdnx
[1,2,3,4,5].match_all{| [ xs... , ys... ] | [ xs , ys ] }
=> [ [[],[1,2,3,4,5]], [[1],[2,3,4,5]], [[1,2],[3,4,5]], [[1,2,3],[4,5]], [[1,2,3,4],[5]], [[1,2,3,4,5][]]]

妄想が広がるなぁ

17デフォルトの名無しさん2016/01/06(水) 22:57:46.34ID:29zUzdnx
rstrip [ xs... , ' ' ] = rstrip xs
rstrip xs = xs

上から優先してパターンマッチされる感じで。

18デフォルトの名無しさん2016/01/06(水) 23:45:14.94ID:sDGBVbLY
エジソンとかそんなのなかったっけ
忘れるか読みづらくなるか結局いい事ない気がする

19デフォルトの名無しさん2016/01/07(木) 03:20:05.61ID:uNe7e1y8
>>1
RPGツクール2000 , RPGツクールMV https://tkool.jp/mv/ ( JavaScript 採用 )

WOLF RPGエディター http://www.silversecond.com/WolfRPGEditor/

デュエル・マスターズ Android版 ,i-OS版、公式 http://dm.takaratomy.co.jp/extra/dmapp/entrygate_ds/
デュエル・マスターズ対戦CGI ex
https://web.archive.org/web/20150809154946/http://www53.atwiki.jp/dmsuishinparty/pages/314.html

デュエル・マスターズ(デュエマ)DM ONLINE 1.8a  /  VanGuard ONLINE 1.5a
https://web.archive.org/web/20150809160254/http://uhyohyohyo.sak ura.ne.jp/hsp.html

ヴァンガード専用ネット対戦ツール【 VanGuard Online 】
https://web.archive.org/web/20150809155032/http://kiimaa.jugem.jp/?eid=61

「カードファイト!!ヴァンガード」のネット対戦ができる公式オンラインゲーム「Cardfight!! Online」 2015年冬スタート
https://web.archive.org/web/20150809153724/http://supersolenoid.blog63.fc2.com/blog-entry-6886.html

遊戯王 Automatic Dueling System
https://web.archive.org/web/20150809164855/http://www3.atwiki.jp/ads-wiki/pages/20.html

遊戯王 デュエル・オンライン
https://web.archive.org/web/20150809171527/http://www31.atwiki.jp/vipdo/pages/15.html
https://web.archive.org/web/20140628005202/http://do.yugioh-portal.net/

ウィクロス( WIXOSS ) WEBXOSS http://webxoss.com/about_en.html http://webxoss.com/DeckEditor/

BG(ボードゲーム)Engine https://web.archive.org/web/20151209080842/https://bgengine.net/
https://web.archive.org/web/20151209172205/http://14owl.hateblo.jp/entry/2015/12/09/011234

アプレンティス  マジック:ザ・ギャザリング(MtG)オンライン化 http://homepage1.nifty.com/Q_Q/ap.html
https://web.archive.org/web/20151202202725/http://homepage1.nifty.com/Q_Q/ap.html

20デフォルトの名無しさん2016/01/07(木) 03:20:51.00ID:uNe7e1y8
【 オンラインTCGエディター 】   >>1,>>19

デュエル・マスターズ的な非電源TCGの 《 オンライン化ツクール系ソフト 》 制作の企画。

例えば、ガチンコ・ジャッジを直ぐにでも導入できる機能を持っておりながら、
当面それを扱わず単純化させておいて、事後的に導入拡張する際に当該システムを
ブロック構造の組み合わせで後付け挿入できるように予めシステム化してあるソフト(エディター)。
既存の非電源TCGを劣らずに再現できるならば大概のニーズに応えられる筈。
デュエマ、ヴァンガ、ウィクロス、ポケカ、デジモン、ゼクス、モンコレ、旧ガンダム・ウォー、ライブオン、ディメンション・ゼロ、シャーマン・キング、カードヒーローなど
のシステムを完全再現できるように設計するけど、他に此のTCGの此のシステムは再現希望とか有ったら書け。
マジック:ザ・ギャザリングの全システムを完全に再現するのは無理だから、此れだけは必用だ!って部分のみリクエストしろ。
個vs個、多数乱戦、チームvsチーム、個vsチームを実現し、P2P通信対戦プラグイン有り。

設計思想は 《 RPGツクール 》 が良いかな?  他に、優れたエディター有ったら挙げてみろ。

個人や企業などのベンダーが提示する開発費(見積もり)で折り合えば、発注する。

エディター群から基本コンセプトを絞り込む(もちろんオリジナルで優れた新ネタが有れば導入する)。

遊戯王OCGに関しては、タッグフォース、ADS、デュエルオンラインを発注先ベンダーに研究させる。
バトスピ、ヴァンガ、デュエマなど発売済みゲームソフトが存在してるTCGはベンダーに研究させる。

各社TCGを再現するテストプレイ ⇒ 更に改良や修正 + コード記述の仕様書(設計書)を作成。

機能制限した下位版を制作しても原則として発売せず + 上位版デュエリ−グ用でサーバー稼動。

下位版を仮に発売した場合の改造および商用利用には、別途で当社との契約が必要。

さ〜て、インド人ベンダーと日本人の翻訳担当SEを見つけよっと!ww
http://wc2014.2ch.net/test/read.cgi/entrance2/1451262577/-16

212016/01/07(木) 19:25:06.63ID:dXdrYJ1Y
>>18
エジ(ギ?)ソンがほぼ望みのパターンマッチを実現してた情報ありがとう。
これで構文糖が俺好みだったら完璧なんだが。

Ruby gemにも移植してるらしくそっちも興味ある。

22デフォルトの名無しさん2016/01/08(金) 00:03:12.39ID:Ydps26p4
もしかしてegison-rubyってmatchつかった再帰関数書けない?
なんかエラーになるんだが原因がよくわからん。

23デフォルトの名無しさん2016/01/08(金) 23:08:49.17ID:A6FQDUS4
ここまでPrologなしかよー
?- L = [1,2,3,1,3]
, append(Xs, [A|T1], L)
, append(Ys, [A|_], T1).

パターンマッチが言語になったようなもん

24デフォルトの名無しさん2016/01/08(金) 23:30:10.78ID:Ydps26p4
prologよかegisonのほうが進んでる感ある
ていうかprologって慣れるまでスゲー大変じゃね?

25デフォルトの名無しさん2016/01/09(土) 00:33:25.66ID:lsq6MmdS
せやな

26デフォルトの名無しさん2016/01/09(土) 13:44:15.85ID:B4VTiUSo
パターンマッチよりカットに頭使う

27デフォルトの名無しさん2016/01/11(月) 07:59:58.18ID:nKbDykqR
バイナリでパターンマッチできて、お手軽な奴が欲しい

28デフォルトの名無しさん2016/01/25(月) 02:05:59.74ID:eghMrhB5
>>1
制約論理プログラミング言語のwikioedia見て

新着レスの表示
レスを投稿する