Elixir Undefined功能

时间:2016-11-12 15:29:35

标签: elixir

Elixir初学者在这里。我试图从iex

运行一个hello world elixir脚本

该脚本是一个基本的hello world示例

IO.puts "Hello World!"

我从iex

运行以下命令
iex(1)> elixir hello.exs

并收到此错误:

** (CompileError) iex:1: undefined function elixir/1

我不确定为什么会收到错误,我们将不胜感激。感谢

4 个答案:

答案 0 :(得分:7)

所以答案并没有埋没在评论中:

  

您应该从shell运行elixir hello.exs,而不是iex

答案 1 :(得分:0)

假设您在控制台中。

$ elixir hello.exs

请参阅:Running scripts for elixir

答案 2 :(得分:0)

正如正确回答的另一个答案所建议的那样,交互式e剂外壳(iex)中没有“ elixir”功能,因此您要做的是从系统外壳中执行elixir命令。

但是,iex中有一些帮助程序可以从开始于iex的目录中加载文件,首先要进行一些设置,因为当前工作目录中有一个test.exs文件,其中包含以下内容:

defmodule Test do
  def greet(person) do
    "Hi, #{person}!"
  end
end

我们可以使用来自iex的c/1(编译文件)帮助程序将其加载到我们的iex会话中:

$ iex
Erlang/OTP 22 [erts-10.5.5] [source] [64-bit] [smp:12:12] [ds:12:12:10] [async-threads:1] [hipe]

Interactive Elixir (1.9.4) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> c("test.exs")
[Test]
iex(2)> Test.greet("Pau")
"Hi, Pau!"
iex(3)>

IEX中可能在这里为您提供帮助的其他助手是pwd,将打印工作目录,而ls,将列出当前工作目录中的文件-您可以使用来更改工作目录cd助手,它以目录作为字符串作为参数。

答案 3 :(得分:0)

我也是 Elixir 的新手,无法弄清楚为什么在从 iex -S mix 键入 cards 后尝试调用我的“create_deck”示例函数时收到“未定义的函数错误”目录。事实证明,我在尝试从交互式 shell 调用时没有包含模块名称。我应该输入 Cards.create_deck(),而不仅仅是 create_deck