代码之家  ›  专栏  ›  技术社区  ›  user7303261

在prolog中运行main

  •  0
  • user7303261  · 技术社区  · 6 年前

    我得到以下代码(来自 this 教程)

    main:- 
             open(’houses.txt’,read,Str), 
             read_houses(Str,Houses), 
             close(Str), 
             write(Houses),  nl. 
    
       read_houses(Stream,[]):- 
             at_end_of_stream(Stream). 
    
       read_houses(Stream,[X|L]):- 
             \+  at_end_of_stream(Stream), 
             read(Stream,X), 
             read_houses(Stream,L).
    

    房屋。txt文件:

       gryffindor. 
       hufflepuff. 
       ravenclaw. 
       slytherin.
    

    我这样加载它:

    $ swipl -s flp18-log.pl
    

    当我想启动main“function”时,问题出现了->

    ?- main.
    ERROR: Undefined procedure: main/1
    ERROR:   However, there are definitions for:
    ERROR:         main/0
    ERROR: 
    ERROR: In:
    ERROR:    [9] main([])
    ERROR:    [8] prolog_main:main at /usr/local/Cellar/swi-prolog/HEAD-e6bbda4/libexec/lib/swipl-7.7.12/library/main.pl:82
    ERROR:    [7] <user>
       Exception: (9) main([]) ?
    

    我花了几个小时才弄清楚到底是怎么回事。没有成功。你能帮忙吗?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Mario L    6 年前

    是:

    open('houses.txt',read,Str)

    使用',而不是使用'。