Functional programming 如何在Erlang中重新分配变量?

Functional programming 如何在Erlang中重新分配变量?,functional-programming,erlang,Functional Programming,Erlang,我是新来的Erlang,这是一个我在网上冲浪好几天都没有得到正确答案的问题。 我想编写如下代码段所示的代码(将其视为伪代码): 最后,我需要得到变量Check的值。正如在Erlang中,我们不能将一个值重新“赋值”给一个变量,我怎样才能在上面显示的代码块末尾得到Check的值呢?我想你可以使用这个列表:any/2。 我想你可以使用这个列表:any/2。 浏览列表并修改每个元素的值的一般方法是使用lists:foldl/3。对于您的特定示例,使用list:any/2(如上所述)更容易、更短。浏

我是新来的Erlang,这是一个我在网上冲浪好几天都没有得到正确答案的问题。 我想编写如下代码段所示的代码(将其视为伪代码):


最后,我需要得到变量Check的值。正如在Erlang中,我们不能将一个值重新“赋值”给一个变量,我怎样才能在上面显示的代码块末尾得到Check的值呢?

我想你可以使用这个
列表:any/2


我想你可以使用这个
列表:any/2


浏览列表并修改每个元素的值的一般方法是使用
lists:foldl/3
。对于您的特定示例,使用list:any/2(如上所述)更容易、更短。

浏览列表并修改每个元素的值的一般方法是使用
列表:foldl/3
。对于您的特定示例,使用列表更简单、更简短:如上所述的any/2。

我相信您可以使用它;)它做的工作!谢谢:)我相信你可以用它;)它做的工作!谢谢:)简要说明:您可能不会在Erlang中大量使用lists:foreach,当然不会像在非函数式语言中使用类似的结构那样多。列表:如果您需要做一些纯粹为了副作用的事情,例如打印列表中的每个值,则foreach主要很有用。当您想要在列表上迭代时,请考虑通过更高级别的函数(如list:foldl、list:map、list:any等)进行转换/检查,而不是使用list:foreach。请注意:在Erlang中,您可能不会太多地使用list:foreach,当然不会像在非函数式语言中使用类似的构造那样。列表:如果您需要做一些纯粹为了副作用的事情,例如打印列表中的每个值,则foreach主要很有用。当您想要在列表上迭代时,考虑通过更高级别的函数(如list:foldl、list:map、list:any等)进行转换/检查,而不是使用list:foreach。
Check =false;
lists:foreach(fun(Row) -> 
      if somecondition -> 
          Check = true;
        true -> ok 
      end
end, RowList)
lists:any(fun(Row) -> somecondition end, RowList).