我正在阅读 Dave Thomas 的《Programming Elixir》,并尝试列表章节中的一些示例。
当我学习一门语言时,我更喜欢通过跑步来尽可能保持基础<language executable> <script file>。在这种情况下我正在跑步elixir reduce.exs
reduce.exs 的内容:
require IEx;
defmodule MyList do
def reduce([], memo, _), do: memo
def reduce([head | tail], memo, func) do
IEx.pry
reduce(tail, func.(head, memo), func)
end
end
ExUnit.start()
defmodule MyListTest do
use ExUnit.Case
def test do
assert 10 == MyList.reduce([1,2,3,4], 0, &(&1 + &2))
end
end
IO.puts(MyListTest.test())
Run Code Online (Sandbox Code Playgroud)
运行时控制台输出:
Cannot pry #PID<0.70.0> at reduce.exs:9. Is an IEx shell running?
Run Code Online (Sandbox Code Playgroud)
我认为我完全误解了一些核心概念,但我不完全确定它们是什么。
iex我的期望是,当程序执行 时,它就会进入会话IEx.pry。鉴于 iex 在 elixir …