トップページ > プログラム > 2015年03月13日 > hdb/BW20

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

45 位/125 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000001000000001



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
プログラミングのお題スレ Part6©2ch.net

書き込みレス一覧

プログラミングのお題スレ Part6©2ch.net
692 :デフォルトの名無しさん[sage]:2015/03/13(金) 15:35:01.56 ID:hdb/BW20
>>674 javascript ( ES6 アロー関数使用 )

var i = 0, xs = ""
var alt = (l, r) => () => {
 var i2 = i
 return l() || (i = i2, r())
}
var many = p => () => {
 var i2 = i
 return (!p()) ? (i = i2, true) : many(p)()
}
var such = pred => () => (i < xs.length && pred(xs.charAt(i)) && (i++ , true))
var sym = s => () => (xs.indexOf(s, i) === i) && (i += s.length, true)
var join = (l, r) => () => (l() && r())
var many1 = p => join(p, many(p))
var between = (open, close, p) => join(join(sym(open), p), sym(close))

var text = many1(such(c => c !== "<" && c !== ">" && c !== "/"))
var b = between("<b>", "</b>", many(text))
var a = between("<a>", "</a>", many(alt(b, text)))
var data = many1(alt(alt(a, b), text))
var check = src => (xs = src, i = 0, console.log(data() && i === src.length ? 1 : 0))

check("<a>ruby<b>php</b>python</a><a><b></b></a><a></a>") // 1
check("<a>ruby<b>php</b>python</a><a></b></a><a></a>") // 0
check("<a>ruby<b>php</b>python</a><a><b></a><a></a>") // 0
check("<a>ruby<b>php</b>python</a><a><b></b></a><a>") // 0
check("vvvc<a>ruby<b>php</b>python</a><a><b></b></a><a></a>") // 1


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