【问题标题】:How to delete an element in a list manually?如何手动删除列表中的元素?
【发布时间】:2017-05-06 13:51:43
【问题描述】:

我创建了一个程序,它会自动删除我在 Lst2 中指定的元素 3。现在,我想手动选择要在我将输入的列表中删除的元素。

-module(list).
-import(lists,[delete/2]).
-export([del/1]).
del([]) -> [];

del(N) -> 
    Lst1 = N,
    Lst2 = delete(3,Lst1),
    io:fwrite("~w~n",[Lst2]).

【问题讨论】:

  • this 问题。顺便说一句,不要使用显式导入。这可能会令人困惑

标签: list erlang


【解决方案1】:

在调用del 函数时传入索引将起作用:

-module(list).
-import(lists,[delete/2]).
-export([del/2]).

del(_Index, []) -> [];
del(Index, List) -> 
    List2 = delete(Index,List),
    io:fwrite("~w~n",[List2]).

或者,如果您想从用户输入中获取索引,您可以像这样从 STDIN 读取:

-module(list).
-import(lists,[delete/2]).
-export([del/2]).

del([]) ->
    io:format("Empty list. Nothing to remove.~n"),
    [];
del(List) -> 
    {ok, [Index]} = io:fread("Index to remove : ", "~d"),
    List2 = delete(Index,List),
    io:fwrite("~w~n",[List2]).

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-16
    • 1970-01-01
    • 2021-03-10
    • 2020-11-28
    • 2010-10-13
    • 2021-06-29
    • 1970-01-01
    相关资源
    最近更新 更多