1

我正在尝试在 Erlang 中创建检查功能我有一个单词和单词列表

list_word() ->
     ["bad1", "bad2", "bad3"].

我正在尝试检查列表中的这个词是否返回 true 除了返回 false

例子 :

check_list() ->
    badword = list_word(),
    if "bad1" == badword ->
        %% do some thing

在这种情况下,列表中的第一个单词,但第二个单词不是,我不希望它返回 true

check_list() ->
    badword = list_word(),
    if "bad1 test" == badword ->
        %% do some thing

我该怎么做 ?

4

1 回答 1

3

看看lists:member/2——它是作为一个实现的,BIF所以它非常快。

case lists:member("bad1", list_word()) of
    true ->
        %% do something
        ;
    false ->
        ok
end.

编辑:对于您的第二个示例,您可以执行以下操作:

Words = list_word(),
Found = fun(Word) -> lists:member(Word, Words) end,
BadWords = string:tokens("bad1 test", " "),
case lists:any(Found, BadWords) of
    true ->
        %% do something
        ;
    false ->
        ok
end.
于 2015-09-11T18:44:44.207 回答