私はDave ThomasのProgramming Elixirを使っています。リストの章からいくつかの例を試しています。エリクシールスクリプトからの非常に基本的なIExとIEx.pryにエラーが発生する:IExシェルが実行されていますか?
私が言語を勉強しているとき、私はできるだけ基本的には<language executable> <script file>
を実行することを好みます。コンソール出力を実行すると
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())
:
Cannot pry #PID<0.70.0> at reduce.exs:9. Is an IEx shell running?
私は、私は完全に一部のコア概念を誤解していますと仮定しますが、私この場合、私はreduce.exsのelixir reduce.exs
内容を実行していますよ彼らが何であるか完全にはわからない。
私が期待するのは、プログラムが実行するのがIEx.pry
になると、プログラムがiex
セッションに落ちるということです。 iexがエリクシールのコアライブラリにあるとすれば、require IEx
が十分に使用できると思いました。
IEx.pry/3
を使用する必要がありますか? iexの別のインスタンスを実行して、どうにかして2つのノードを接続する必要がありますか?
iex reduce.exs
を実行してコードを評価するだけでファイルが実行されますが、テスト出力は表示されません。
私が作ったばかげた仮定をすべて修正してください。