2009-05-11 8 views

答えて

4

この宿題はありますか? :)

両方のリストを参照して入力内のすべての文字列を検索するには、1つまたは2つの再帰関数を作成する必要があります。

または、ここで役立つプレリュードのいくつかの優れた機能を調べることができます。

+1

yea、im haskellに新しい。私はそれを試しましたが、私はエラーが発生します。 inputIndex :: [文字列] - > [文字列] - >ブール inputIndex [] _ = [] inputIndex LISTX入力= [ 'elem' LISTX X | X < - 入力] エラー: - 型エラーで[String] - > [String] - > [a] *** [string] - > [String] - > Bool ***用語:inputIndex ***タイプ:[文字列] - > [文字列] - > [a] ***一致しません: – pier

+1

@ dlna:あなたの関数は各xに1つのBoolのリストを返しています。論理とそのすべてであるBoolがほしいのですが、あなたができることの1つは "inputIndex listx input =と[x' elem'listx | x - - input] " – newacct

+0

です。そこにいる。 'と'はあなたが[Bool] - > Boolを減らすために必要なものです。 – Macke

5
all (flip elem listx) input 

が気になります。それはしかし、どのよう効率的には考え...

+0

それは働いてくれてありがとう。どのように正確に流れますか? – pier

+2

ありがとうございました。 "all(' elem'listx)input "と書くこともできます。 @dlna:基本的には、 "all(\ x - > x' elem'listx)input "に展開されます。これは、入力のすべての要素に対して、listxの要素であることを保証します – newacct

6

Bは、IFFのサブセットB \ Aはそれを行うための別の方法は

import Data.List ((\\)) 
null (input \\ listx) 
4

もう一つの方法である、空

ではありません。

import Data.Set 
(fromList input) `isSubsetOf` (fromList listX)