私はHaskellを初めて使っています。これが基本的な質問であればごめんなさい。Haskell:IntがIntのリストにあるかどうか確認してください
私は現在、Intのリストを持っており、変数xをとり、その変数がリストに存在するかどうかによってブール値を返す関数を作成しようとしています。
私は検索してData.List find関数を見つけましたが、この値はブール値を返すようです。
私はGHCiを使用しています。
ありがとう、
私はHaskellを初めて使っています。これが基本的な質問であればごめんなさい。Haskell:IntがIntのリストにあるかどうか確認してください
私は現在、Intのリストを持っており、変数xをとり、その変数がリストに存在するかどうかによってブール値を返す関数を作成しようとしています。
私は検索してData.List find関数を見つけましたが、この値はブール値を返すようです。
私はGHCiを使用しています。
ありがとう、
まず、必要な機能の種類を探します。
「チェックする」とは、TrueまたはFalseのいずれかを返すことを意味します。ブールです。
ので、機能がINT、INT(別名[INT])のリストを受け取り、ブール値を返します。今
Int -> [Int] -> Bool
elem :: Eq a => a -> [a] -> Bool
Hoogleは非常に便利なツールです。あなたはintegrate it with ghciすることができます。
標準elem
の機能が存在しない場合は、正しいトラックにfind
と表示されている可能性があります。
myElem :: (Eq a) => a -> [a] -> Bool
myElem x = maybe False (const True) . find (== x)
私はもっと単純に、このようにそれをやった
myElem x = any (== x)
myElem x = or . map (== x)
myElem x = not . null . filter (== x)
myElem x = foldr (\y b -> y == x || b) False
など
のような、あまりにもそれを実装する他の方法の多くは、あります。
l=[1,2,3,4,5]
checkIfElem :: Int -> [Int] ->Bool
checkIfElem x l
|x`elem` l =True
|otherwise=False
これは本当にシンプルですが、それは 'checkIfElem = elem'という定義を書くのは信じられないほど複雑な方法です。 (Guardsはすでにブール値をチェックしていますので、 '| condition = True'' | otherwise = False'とすると' = condition'と単純に等価ですので、 'checkIfElem xl = elem xl'両方の議論。) – leftaroundabout
私はこれが単純だとは思わない。 –
私はここにgoogle lead me hereをお願いします。あなたはOPに厳しいものである必要はありません。 – fotanus
回答の音質を改善するにはどうすればよいですか?私は厳しくしようとはしていませんでした。 – AtnNn
私の悪い、私は "google"を読んで:-D – fotanus