2010-08-26 20 views
20

मैं प्रोलॉग में एक हैलो वर्ल्ड प्रोग्राम लिखने का प्रयास करने के लिए अपने बालों को फाड़ रहा हूं। मैं तो बस एक प्रोग्राम है जो इतनी तरह चलाता है बनाना चाहते हैं:प्रोलॉग में हैलो वर्ल्ड

> ./hw 
Hello, world! 
> 

समस्या यह है कि हर एक उदाहरण मैं एक आरईपीएल में काम करता है, इसलिए की तरह मिल सकती है:

?- consult(hello_world). 
% hello compiled 0.00 sec, 612 bytes 

Yes 
?- hello_world. 
Hello World! 

Yes 

यह भी साथ एक ही है संकलित प्रोलॉग के उदाहरण: कार्यक्रम अभी भी एक आरईपीएल में गिरता है। यह स्पष्ट रूप से "सामान्य उद्देश्य" भाषा के लिए अधिक उपयोग नहीं है। तो, मैं पारंपरिक हैलो वर्ल्ड कैसे लिखूं?

+5

कहाँ कथात्मक प्रोग्रामिंग के अपने गुण अब कर रहे हैं? MWHAHAHA :) –

+9

मुझे पता नहीं, मुझे लगता है कि एक आवेदन में Prolog के सबसे * वास्तविक * कार्यान्वयन क्या यह कम से अच्छा है के लिए एक एम्बेडेड भाषा के रूप में इसका इस्तेमाल करते हैं, बजाय पूरे एप्लिकेशन (यूआई, फ़ाइल मैं/हे, हार्डवेयर नियंत्रण, आदि लिखने ..) Prolog में। – FrustratedWithFormsDesigner

उत्तर

17

GNU Prolog का उपयोग करना:

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

$ gplc hello.pl $ ./hello
Hello World!

+0

FYI करें, में एक ही [SWI-Prolog] (http://www.swi-prolog.org/pldoc/man?predicate=initialization/1) –

2

प्रोलॉग वास्तव में सामान्य उद्देश्य भाषा नहीं है। हम विश्वविद्यालय में कृत्रिम बुद्धि प्रणाली तैयार करने के लिए इसका इस्तेमाल करते हैं।

आपको एक तथ्य परिभाषित करना होगा, जो "हैलो वर्ल्ड" का उत्तर देता है।

?- hello(X). 

हालांकि, PROLOG संकलक पर निर्भर करता है, तो आप शायद एक write() नियम है, कि आप इस्तेमाल कर सकते हैं:

hello('hello world'). 

फिर, तथ्य यह है पूछताछ

?- write('hello world'), nl. 
+1

यह सवाल का जवाब नहीं देता है। यह सिर्फ एक और स्पष्टीकरण है कि इसे आरईपीएल में कैसे चलाया जाए। ओपी क्या जानना चाहता था इसके विपरीत यह बिल्कुल विपरीत है। इसके अलावा, ओपी स्पष्ट रूप से कहा है कि वह वास्तव में तथ्य यह है कि वहाँ कैसे आरईपीएल में इसे चलाने के लिए के स्पष्टीकरण की एक लाख के बारे में निराश है, लेकिन का कोई स्पष्टीकरण कैसे करना एक यह करने के लिए चाहता है कि वास्तव में क्या है, अर्थात् एक मुद्रण बनाने के लिए एकल स्ट्रिंग –

10

आप प्रोलॉग दुभाषिया को लॉन्च करने के लिए अपनी स्रोत फ़ाइल लिख सकते हैं और जब आपका कोड चल रहा है तो इसे छोड़ने के लिए। यहाँ एक उदाहरण SWI-Prolog उपयोग कर रहा है:

#!/usr/bin/swipl -q -t hello_world -f 

hello_world :- write('Hello World'), nl, 
       halt. 

मान लें कि आप 'hw' नाम की एक फ़ाइल में रखते, और निष्पादन योग्य अनुमति की तरह आप चाहते हैं, तो आप इसे कॉल कर सकते हैं स्थापित करने के लिए:

$ ./hw 
Hello World 
$ 
+0

मुझे लगता है कि '4' के बजाय 'लिखना (3 + 1)' प्रिंट' 3 + 1'। क्या इस तरह अंकगणितीय अभिव्यक्तियों के आउटपुट को मुद्रित करने का कोई तरीका है? –

संबंधित मुद्दे