[過去ログ] 関数型プログラミング言語Haskell Part16 (978レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
780
(3): デフォルトの名無しさん [sage] 2011/12/22(木) 05:28:49.45 AAS
>>778
778(6): デフォルトの名無しさん [sage] 2011/12/21(水) 19:40:34.62 AAS
>>767
data Where = Before | Here | After

whereIncluded :: (Eq a) => [a] -> [a] -> a -> Where
whereIncluded _ [] _ = After
whereIncluded (a:as) (b:bs) x
| x == b = Here
| x == a = if elem x bs then Here else Before
| otherwise = whereIncluded as bs x

[説明]
・listA と listB それぞれの head と x を比較する
・listB の head と x が同じなら、x は listB に含まれる
・そうではなく listA の head と x が同じ場合、
 x が listB に含まれていなければ、x は後方にある
・どちらの head とも異なっていれば、両者の tail に対して同計算を繰り返す
・計算を繰り返した結果 listB の tail が空なら、x は後方にある

提示された条件を全て完全に満たすものとして式を書いたので、
エラー処理は省いてある
whereIncluded [1..6] [5] 4 = whereIncluded [2..6] [] 4 = After
1-
あと 198 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.017s