【问题标题】:Adding variable to list in prolog将变量添加到序言中的列表
【发布时间】:2011-03-30 19:51:17
【问题描述】:

我正在尝试通过提示用户输入名称然后从函数中获取该列表来解决如何将名称添加到 Prolog 中的列表,但我不确定 append 在这种情况下如何工作:

test:-
    addname(Names),
    write(Names).

addname(Names):-
    write('Enter name followed by . (s. to stop)'),
    read(Name), nl,
    (Name = 's') ->
        true; %% exit procedure
        append(Names, Name, New),
        addname(Names).

有人能指出正确的方向吗?

【问题讨论】:

    标签: list variables io prolog add


    【解决方案1】:

    可能是这样的:

    get_names(Names) :-
        writeln('Enter name followed by . (s. to stop)'),
        read(Name), 
        add_name(Name, Names).
    
    add_name(s, []) :- !.
    
    add_name(Name, [Name | Names]) :-
        get_names(Names).
    

    用法:

    ?- get_names(Names).
    Enter name followed by . (s. to stop)
    |: 'John'.
    Enter name followed by . (s. to stop)
    |: 'Mary'.
    Enter name followed by . (s. to stop)
    |: s.
    Names = ['John', 'Mary'].
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-31
      • 2012-02-20
      • 1970-01-01
      • 2017-04-12
      • 2013-04-17
      • 1970-01-01
      • 2021-09-11
      • 2017-12-07
      相关资源
      最近更新 更多