运行序言中的主要内容

Running main in prolog

我得到了以下代码(来自 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).

houses.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([]) ?

我花了好几个小时才找出问题所在。不成功。你能帮忙吗?

是:

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

用',不用'。