为什么Erlang编译器不能在编译时检测到未定义的函数?
如果我写一个test.erl文件:
如果我写一个test.erl文件:
-module(test).
-export([start/0]).
start() ->
erlang:foo().
编译通过。
Eshell V5.6.5 (abort with ^G)
1> c(test).
{ok,test}
2>
但会在运行时崩溃。
2> test:start().
** exception error: undefined function erlang:foo/0
为什么编译器在编译期间不对此发出错误或警告?它应该知道有导出函数,不是吗?