Prolog: إجراء إجراء لطباعة Hello World
-
23-09-2019 - |
سؤال
أريد تحميل هذا الشيء البسيط في المحرر الخاص بي:
Write:-repeat,write("hi"),nl,fail.
بحيث يطبع "مرحبا".
ماذا علي أن أفعل؟
أحاول حاليا القيام به File->New
وحفظ ملف مسمى الكتابة في E:\Program Files\pl\xpce\prolog\lib
عند إجراء الاستعلام:
؟-اكتب.
إنها الطباعة:
1 ?- Write.
% ... 1,000,000 ............ 10,000,000 years later
%
% >> 42 << (last release gives the question)
لماذا ا؟
المحلول
تعديل
فعلت المزيد من الأبحاث. من الواضح أن هذا ما يفعله SWI-Prolog عندما تسأله عن متغير غير ثابت.
$ prolog
Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 5.6.64)
Copyright (c) 1990-2008 University of Amsterdam.
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to redistribute it under certain conditions.
Please visit http://www.swi-prolog.org for details.
For help, use ?- help(Topic). or ?- apropos(Word).
?- X.
% ... 1,000,000 ............ 10,000,000 years later
%
% >> 42 << (last release gives the question)
?-
تحديث
تغيير الاسم إلى أعمال صغيرة. الأحرف الكبيرة مخصصة للمتغيرات:
HelloWorld.Prolog:
helloworld:-write('Hello World!'),nl,fail.
ثم:
$ prolog
Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 5.6.64)
Copyright (c) 1990-2008 University of Amsterdam.
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to redistribute it under certain conditions.
Please visit http://www.swi-prolog.org for details.
For help, use ?- help(Topic). or ?- apropos(Word).
?- ['helloworld.prolog'].
% helloworld.prolog compiled 0.00 sec, 1,376 bytes
true.
?- helloworld.
Hello World!
false.
?-
لاحظ أنه يتعين عليك استشارة الملف أولاً. جربت هذا ويعمل بالتأكيد.
نصائح أخرى
تحتاج إلى تسمية الإجراء write
, ، ليس Write
. الحالة العليا بدء الحروف هي للمتغيرات. (قد يكون الأمر أقل إرباكًا إذا سميته بشيء آخر مثل writeHi
أو شيء من هذا القبيل ، لذلك ليس له نفس اسم الإجراء المدمج ، لكنه سيظل يعمل عند الاتصال به write
لأن كتابتك لها قسوة مختلفة عن المدمج في واحد).
كما قد ترغب في استبدال "hi"
مع 'hi'
, ، على الرغم من أنه سيعمل في كلتا الحالتين (ولكن الإصدار الثاني فقط سيقوم بالفعل بطباعة الكلمة HI على الشاشة - سيقوم الإصدار الخاص بك بطباعته كقائمة عدد صحيح).