检查Erlang中

时间:2015-09-11 18:42:32

标签: erlang erl

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

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

我试图检查列表中的这个单词是否返回true,除了return false

示例:

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

在这种情况下,列表中的第一个单词,但第二个单词不是,我不想返回真实

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

我该怎么办?

1 个答案:

答案 0 :(得分: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.