Tôi có thể xác định các hàm được đặt tên trong các mô-đun tốt, nhưng tôi chưa có được chức năng của nó để sử dụng trong bảng điều khiển iex> hoặc ex>.Làm cách nào để xác định các hàm được đặt tên trong bảng điều khiển Elixir mà không nhận được ** (ArgumentError) không thể gọi ra mô-đun bên ngoài def/2?
tôi tiếp tục nhận được lỗi sau khi tôi cố gắng chạy lệnh def:
(ArgumentError) cannot invoke def/2 outside module
pprime.exs
IO.puts "initial division test"
defmodule Expand do
def transform(myvar) do
8 * myvar + 3;
end
end
div2 = fn inputnum ->
[:a, inputnum/2.0, inputnum/3, inputnum/5.0, inputnum/7]
end
output = div2.(20.1)
tôi có thể chạy này với elixir tốt, như sau:
$ elixir pprime.exs
Tuy nhiên, trong bảng điều khiển, tôi dường như không thể làm bất cứ điều gì như vậy:
Erlang/OTP 17 [erts-6.3] [source] [64-bit] [async-threads:10] [kernel-poll:false]
Interactive Elixir (1.0.2) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> def transform(myvar) do 8 * myvar + 3; end
** (ArgumentError) cannot invoke def/2 outside module
(elixir) lib/kernel.ex:3556: Kernel.assert_module_scope/3
(elixir) lib/kernel.ex:2816: Kernel.define/4
(elixir) expanding macro: Kernel.def/2
(elixir) iex:1: :elixir_compiler.__FILE__/2
Làm cách nào để xác định chức năng được đặt tên trong bảng điều khiển Elixir?
Điều này có thể thực hiện được không?
Tôi có cần tạo mô-đun đặc biệt để sử dụng trong bảng điều khiển Elixir không?
Có thể thêm mô-đun cho bảng điều khiển Elixir để xác định chức năng không? –
Có, bạn chỉ có thể lồng 'def' trong' defmodule', giống như trong tệp exs. –
//, tôi ngửi thấy mùi hương ướt át, ẩm ướt của tóc yak, nhưng không phải mọi lang đều có thể hoặc nên là Python, tôi đoán vậy. –