[解決済み] Erlang スクリプトの実行時に "init terminating in do_boot" がスローされる。
2022-02-14 15:45:04
質問
以下は、'factorial.erl' にある私のコードです。
-module(factorial).
-author("jasonzhu").
%% API
-export([fac/1]).
fac(0) -> 1;
fac(N) -> N * fac(N-1).
このコードをプロンプトで実行すると、正常に動作します。
1> c(factorial).
{ok,factorial}
2> factorial:fac(20).
2432902008176640000
しかし、コンパイルしてコマンドラインから実行すると、いくつかのエラーが発生しました。
Jasons-MacBook-Pro:src jasonzhu$ erlc factorial.erl
Jasons-MacBook-Pro:src jasonzhu$ erl -noshell -s factorial fac 20 -s init stop
{"init terminating in do_boot",{badarith,[{factorial,fac,1,[{file,"factorial.erl"},{line,8}]},{init,start_it,1,[]},{init,start_em,1,[]}]}}
Crash dump was written to: erl_crash.dump
init terminating in do_boot ()
どなたか助けていただけませんか?私はErlangの初心者です、よろしくお願いします。
どのように解決するのですか?
-noshell構文は
erl -noshell -s Module Function Arguments
ここで、Argumentsはアトムのリストです。したがって、リストから'fac'引数を取り出して整数に変換する必要がある。
これは
-module(factorial).
-export([fac/1]).
fac([N]) ->
X = fac(list_to_integer(atom_to_list(N))),
io:format("~p~n", [X]);
fac(0) -> 1;
fac(N) -> N * fac(N-1).
作品
>>> erl -noshell -s factorial fac 20 -s init stop
2432902008176640000
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン