Elixir 未定义函数的长生不老药

Elixir 未定义函数的长生不老药,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 不知道我为什么会出错,如果有任何帮助,我们将不胜感激。谢谢所以答案不会隐藏在评论中: 您应该从shell运行e

长生不老药初学者在这里。我正在尝试从iex运行hello world elixir脚本

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

IO.puts "Hello World!"
我从iex运行以下命令

iex(1)> elixir hello.exs
并获取以下错误:

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

不知道我为什么会出错,如果有任何帮助,我们将不胜感激。谢谢

所以答案不会隐藏在评论中:


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


假设您在控制台中

$ elixir hello.exs

请参阅:

另一个答案正确地指出,交互式elixir shell(iex)中没有“elixir”功能,因此您要做的是从系统shell执行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
帮助程序更改工作目录,这将目录作为一个参数。

您应该从shell运行
elixir hello.exs
,而不是在
iex
中运行。虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能无效。-感谢@ManojChoudhari在这篇文章中提到。