トップページ > プログラム > 2016年01月06日 > 29zUzdnx

書き込み順位&時間帯一覧

2 位/226 ID中時間01234567891011121314151617181920212223Total
書き込み数00000000000000000000255012



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
パターンマッチを極限まで高めたら [無断転載禁止]©2ch.net

書き込みレス一覧

パターンマッチを極限まで高めたら [無断転載禁止]©2ch.net
1 :デフォルトの名無しさん[sage]:2016/01/06(水) 20:16:42.56 ID: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つ含むリストにマッチ)
みたいなのもできるようにするとかどうなん?
パターンマッチを極限まで高めたら [無断転載禁止]©2ch.net
6 :デフォルトの名無しさん[sage]:2016/01/06(水) 20:59:07.00 ID:29zUzdnx
正規表現かー。
正規表現をそのまま流用すればいい線行くのかな?
パターンマッチを極限まで高めたら [無断転載禁止]©2ch.net
7 :デフォルトの名無しさん[sage]:2016/01/06(水) 21:25:38.71 ID: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を含むリストにマッチ
パターンマッチを極限まで高めたら [無断転載禁止]©2ch.net
8 :デフォルトの名無しさん[sage]:2016/01/06(水) 21:26:26.53 ID:29zUzdnx
計算量がやばいかな?
計算量はひとまず目をつぶろう
パターンマッチを極限まで高めたら [無断転載禁止]©2ch.net
9 :デフォルトの名無しさん[sage]:2016/01/06(水) 21:50:41.46 ID:29zUzdnx
[ xs... , xs... ] 同じ内容を繰り返すリスト
って正規言語なんだっけ?忘れちゃった。
パターンマッチを極限まで高めたら [無断転載禁止]©2ch.net
10 :デフォルトの名無しさん[sage]:2016/01/06(水) 21:57:56.85 ID:29zUzdnx
a=[1,2,3]
b=4
c=[5,6]

match([1,2,3,4,5],[a... , b , c...]) => true
パターンマッチを極限まで高めたら [無断転載禁止]©2ch.net
11 :デフォルトの名無しさん[sage]:2016/01/06(水) 21:58:51.25 ID:29zUzdnx
ミスった
match([1,2,3,4,5,6],[a... , b , c...]) => true
パターンマッチを極限まで高めたら [無断転載禁止]©2ch.net
13 :デフォルトの名無しさん[sage]:2016/01/06(水) 22:06:01.20 ID:29zUzdnx
a=[1,2,3]
c=[5,6]

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

Ruby風に書いてみた
パターンマッチを極限まで高めたら [無断転載禁止]©2ch.net
14 :デフォルトの名無しさん[sage]:2016/01/06(水) 22:07:23.13 ID:29zUzdnx
>>12
わからん。
場合によっては綺麗にかけるようになるものもあるかも。
パターンマッチを極限まで高めたら [無断転載禁止]©2ch.net
15 :デフォルトの名無しさん[sage]:2016/01/06(水) 22:17:11.90 ID:29zUzdnx
あんまり正規表現にすり合わせようとしないほうがいいかもしれないな。
俺の勘だが。
パターンマッチを極限まで高めたら [無断転載禁止]©2ch.net
16 :デフォルトの名無しさん[sage]:2016/01/06(水) 22:44:46.34 ID: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][]]]

妄想が広がるなぁ
パターンマッチを極限まで高めたら [無断転載禁止]©2ch.net
17 :デフォルトの名無しさん[sage]:2016/01/06(水) 22:57:46.34 ID:29zUzdnx
rstrip [ xs... , ' ' ] = rstrip xs
rstrip xs = xs

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


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。