erlang - 如何在 Erlang 中使用变量作为引用传递?
问题描述
为什么我的输出没有反映在 Lst1 中?
-module(pmap).
-export([start/0,test/2]).
test(Lst1,0) ->
{ok, [Temp]} = io:fread( "Input the edge weight ", "~d" ),
lists:append([Lst1,[Temp]]),
io:fwrite("~w~n",[Lst1]);
test(Lst1,V) ->
{ok, [Temp]} = io:fread( "Input the edge weight ", "~d" ),
lists:append([Lst1,[Temp]]),
test(Lst1, V-1).
start() ->
{ok, [V]} = io:fread( "Input the number of vertices your graph has ", "~d" ),
Lst1 = [],
test(Lst1,V).
所以,我的 Lst1 正在打印 [],而如果我提供输入 1,2,3,我希望它打印,假设,[1,2,3]。
解决方案
因为 Erlang 变量是不可变的,根本无法更改。lists:append
返回一个你扔掉的新列表。
推荐阅读
- c - 'a' 代表“ch = input[c] - 'a'”中的 1 吗?
- azure - Azure 备份保留策略
- python - 如何自动查询,直到使用 python / pyodbc 关闭/杀死脚本?
- javascript - Javascript 使用 onclick 附加 div 元素需要双击
- spring - 在控制器声明之前检查会话值
- google-apps-script - Google App Script - 如果选项卡的名称不存在于另一个数组中,则删除该选项卡
- django - Django: 'User' object has no attribute 'cleaned_data'
- python - Plotting a graph from multiple pandas data frame columns
- c++ - 如何正确实现快速排序?
- makefile - 为什么 GNU make 忽略 SIGINT,但不执行以下命令?