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

Prolog中的Hello world

  •  20
  • jameshfisher  · 技术社区  · 14 年前

    我拼命想知道如何用Prolog写一个helloworld程序。我只想创建一个这样运行的程序:

    > ./hw
    Hello, world!
    >
    

    问题是我能找到的每一个例子都适用于REPL,比如:

    ?- consult(hello_world).
    % hello compiled 0.00 sec, 612 bytes
    
    Yes
    ?- hello_world.
    Hello World!
    
    Yes
    

    即使在编译的Prolog示例中也是如此:程序仍然只是放入REPL中。对于“通用”语言来说,这显然没有多大用处。那么,我该怎么写传统的Hello世界呢?

    4 回复  |  直到 10 年前
        1
  •  19
  •   Greg Buchholz    14 年前

    使用 GNU Prolog

    $ cat hello.pl 
    :- initialization(main).
    main :- write('Hello World!'), nl, halt.

    美元gplc你好.pl
    你好,世界!

        2
  •  11
  •   Jeff Dallien    14 年前

    您可以编写源文件来启动Prolog解释器,并在代码运行完毕后退出它。下面是一个使用SWI Prolog的示例:

    #!/usr/bin/swipl -q -t hello_world -f
    
    hello_world :- write('Hello World'), nl, 
                   halt.
    

    假设您将其放入一个名为“hw”的文件中,并设置可执行权限,您可以按如下方式调用它:

    $ ./hw
    Hello World
    $
    
        3
  •  3
  •   polemon    14 年前

    Prolog不是一个真正的 一般用途 语言。我们用它来设计大学里的人工智能系统。

    你必须定义一个事实,回答“你好世界”。

    hello('hello world').
    

    然后,询问事实:

    ?- hello(X).
    

    但是,根据PROLOG编译器的不同,您可能有一个 write()

    ?- write('hello world'), nl.
    
        4
  •  1
  •   3ashmawy    14 年前
    writeln('hello world').