我可以直接在交互式外壳中编写一个匿名函数,如下所示。
iex> total_bottles_milk = fn total -> total * 2 end
iex> total_bottles_milk.(2)
Run Code Online (Sandbox Code Playgroud)
但是,如果我编写一个外部文件并在交互式外壳程序中运行,它将显示“编译错误”。
我的文件名和目录路径是lib / expense.ex
下面是我的代码
defmodule Expense do
total_bread_slices = fn total -> (total * 10) / 100 end
total_bottles_milk = fn total -> total * 2 end
total_cakes = fn total -> total * 15 end
def total_expense(bread_slices, bottles_of_milk, cakes) do
total_bread_slices.(bread_slices) + total_bottles_milk.(bottles_of_milk) + total_cakes.(cakes)
end
end
Run Code Online (Sandbox Code Playgroud)
当我进入文件夹路径并运行iex -S mix以运行Expense模块时,终端显示Compilation错误。
我只是想知道我是否可以直接在交互式外壳程序中运行匿名函数,而不是从外部源进行编译。我想写我作为一等公民的职能。如果有办法,我该怎么办?