【问题标题】:Why is the syntax error coming in erlang spawn function call - " syntax error before: ')' "?为什么 erlang spawn 函数调用中出现语法错误 - “之前的语法错误:')'”?
【发布时间】:2019-03-09 10:13:34
【问题描述】:

这是我在在线编译器中运行的代码

-module(helloworld). 
-export([start/0, call/2]). 

start() -> 
% error in the below line as  syntax error before: ')'
Pid = spawn(?MODULE, call, ["hello","world"] ),
io:fwrite("~p",[Pid]).


call(Arg1, Arg2) -> 
io:format("~p ~p~n", [Arg1, Arg2]). 

【问题讨论】:

  • 如果在线编译器给出了这个代码的错误,那么它是错误的。
  • 请提供您使用的在线编译(web ?)

标签: concurrency erlang erl


【解决方案1】:

我在tutorialspoint 在线尝试了erlang 编译器,并且可以重现问题。我猜编译器出了点问题,这不是你的错,继续调查Erlang :)

https://www.tutorialspoint.com/compile_erlang_online.php

你可以在线改成这个编译器

https://paiza.io/en/projects/new?language=erlang

//编辑: 问题可能来自tutorialspoint 的编辑。它使编译器无法理解函数spawn/3,请为spawn/3 函数添加双引号'',如下所示,它将编译并运行:

 Pid = 'spawn'(?MODULE, call, ["hello","world"] ),

【讨论】:

  • 这很奇怪......我试过tutorialspoint,如果你把spawn改成apply,那么它会编译并运行......
猜你喜欢
  • 2015-10-13
  • 2019-11-25
  • 2014-06-08
  • 2014-03-19
  • 2011-04-06
  • 1970-01-01
  • 1970-01-01
  • 2015-02-24
  • 2021-11-13
相关资源
最近更新 更多