在 Erlang 中检查列表中的项目

check for item in list in Erlang

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

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

我正在尝试检查列表 return 中的这个词是否正确,除了 return 错误

示例:

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

在这种情况下,列表中的第一个词而不是第二个词,我不希望它 return true

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

我该怎么做?

看看 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.