elixir - is_integer() 不适用于 Enum.all?

标签 elixir

这里是Total Elixir菜鸟。这是我的问题:

使用 Enum.all?/2 函数时,我们传递一个函数作为第二个参数:

iex(19)> is_int = &(is_integer(&1))
iex(20)> Enum.all?(list, is_int)
true

为什么我不能直接传递 is_integer

iex(21)> Enum.all?(list, is_integer)
** (CompileError) iex:21: undefined function is_integer/0
    (stdlib) lists.erl:1354: :lists.mapfoldl/3
    (stdlib) lists.erl:1355: :lists.mapfoldl/3

is_integer 不是一个函数吗?从错误来看是这样的。我们在那里看到的 mapfoldl 是什么?

最佳答案

你必须捕获这个函数。使用:

Enum.all?(list, &(is_integer(&1))

关于elixir - is_integer() 不适用于 Enum.all?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38850910/

相关文章:

elixir - Ecto 中的变量排序依据

elixir - 如何使用 Phoenix 框架发送电子邮件

nginx - 如何在 Nginx 后面设置带有 Phoenix 的 Websockets?

erlang - 如何知道原子或字符串是否是有效标识符

ssh - Erlang客户端设置ssh key

elixir - 在 Phoenix LiveView 中提交后重置表单输入字段

elixir - 使用 Postgrex 和 Ecto 准备好的语句

elixir - ExUnit-在所有测试之前运行一次数据库设置代码

elixir - 如何在 Elixir 中取数字的平方根?

elixir - 如何为 Phoenix 请求强制执行 JSON 编码?