[過去ログ] 関数型プログラミング言語Haskell Part16 (978レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
783(2): 778 [sage] 2011/12/22(木) 07:55:25.77 AAS
途中でレスってしまった
>>780780(3): デフォルトの名無しさん [sage] 2011/12/22(木) 05:28:49.45 AAS
>>778
whereIncluded [1..6] [5] 4 = whereIncluded [2..6] [] 4 = After
に指摘されて修正案を考えてる時に、
全然違うアイデアが思い浮かんだんだが、
これは今まで出てきたかな(特に >>771771(4): デフォルトの名無しさん [sage] 2011/12/20(火) 23:35:56.81 AAS
>>767
1. listAをlistA1 ++ [x] ++ listA2にわける
2. listA1とlistBのintersectionを取って判定
f listA listB x =
if y == 0 then 1 else if y == length listB then -1 else 0
where y = length $ takeWhile (/= x) listA `intersect` listB
と同類か)
listA から x の位置を探す
x の位置の直後から listB の要素数分の要素をリストとして取り出す listC
x が listB に無い場合、head listB が listC に有れば「前」
head listB が listC に無ければ「後ろ」
784(1): 778 [sage] 2011/12/22(木) 08:55:12.79 AAS
>>783
訂正
> x の位置の直後から listB の要素数分の要素をリストとして取り出す listC
x の位置の直後から末端までをリストとして取り出す listC
785: 778 [sage] 2011/12/22(木) 12:54:37.61 AAS
>>783,784
式にするとこんな感じ
whereIncluded :: (Eq a) => [a] -> [a] -> a -> Where
whereIncluded as bs@(b:_) x
| elem x bs = Here
| elem b as' = After
| otherwise = Before
where as' = takeWhile (/=x) as
ダサいかな
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.051s