LINUX.ORG.RU

[prolog] Что выбрать для лаб?

 


0

1

Добрый вечер.

В универе сейчас проходим курс пролога (сложно назвать курсом, но всё же). Методичка по лабам, разумеется, ориентирована на турбопролог. Хотелось бы их писать на swi-prolog, но, прежде чем разбираться с ним, хотелось бы узнать, можно ли в нём выполнить задачу «посчитать сумму всех чисел в файле»?

спасибо

★★

бери swi-prolog, даже и не думай

хотелось бы узнать, можно ли в нём выполнить задачу «посчитать сумму всех чисел в файле»

а какие ожидаются проблемы?

shty ★★★★★
()
Ответ на: комментарий от shty

shty

а какие ожидаются проблемы?

просто какими-то домыслами додумал, что в тпрологе нелогических элементов более чем в сви-прологе. А можно ссылку, где есть годный подобный пример?

do0dlez ★★
() автор топика

> Методичка по лабам, разумеется, ориентирована на турбопролог

ООП, анонимные предикаты, статическая типизация и т.д.? В ISO стандарте такого нет, так что отличия могут быть существенные.

kim-roader ★★
()
Ответ на: комментарий от do0dlez

А можно ссылку, где есть годный подобный пример?

/tmp $ cat nums 
123 53
1 23 66
12 
1 12 67 98
/tmp $ cat code.pl
:- initialization(main).

main :- open('/tmp/nums', read, H),
	sum(H, 0, R),
	print(R), nl,
	close(H),
	halt.

sum(H, R, R1) :-
	(   catch(read_number(H, N), _Error, fail) ->
	    R2 is R + N,
	    sum(H, R2, R1)
	;   R1 = R
	).
/tmp $ gplc code.pl 
/tmp $ ./code 
456
/tmp $ 
kim-roader ★★
()

У нас Visual Prolog Personal Edition в универе на венде. Причём достаточно старый, 5.2.

adriano32 ★★★
()

Бери swi-prolog - много либ и хорошая документация. Еще хорош yap - он на порядок быстрей сви-пролога и все основные библиотеки есть.

bik ★★
()
Ответ на: комментарий от do0dlez

Если делать что-то серьезное я всеми руками за SWI-Prolog, но зачем для лаб в универе лишний раз напрягать мозг и пытаться переделывать программы с одного диалекта на другой.

buddhist ★★★★★
()
Ответ на: комментарий от bik

Еще хорош yap

а вот за YAP, кстати, спасибо

shty ★★★★★
()

wine + Visual Prolog. 5(.1?) отлично работал

yoghurt ★★★★★
()
Ответ на: комментарий от shty

Но переписывание с диалекта на диалект, лишь бы оно заработало на универских компах, - пустая трата времени

yoghurt ★★★★★
()

[ложка дёгтя]
ужс, у нас в унив. еле на Си перешли с Паскаля, а тут такая редкость да студентам в голову.
Очень маловероятно кто-то что-то толковое будет писать на этом.
Разве что диссертацию напишут «О возможных применения языка программирования Prolog в науке и технике», что также, imho, глупо.

blinkenlichten
()
Ответ на: комментарий от blinkenlichten

>Очень маловероятно кто-то что-то толковое будет писать на этом.

Охо-хо

yoghurt ★★★★★
()
Ответ на: комментарий от yoghurt

переписывание с диалекта на диалект, лишь бы оно заработало на универских компах

переписывание, возможно, и не так эффективно, но оно даёт возможность глубже рассмотреть язык, узнать какие бывают нюансы, как отличаются диалекты - это всё полезно

кроме того, помимо переписывания есть понимание работы пролога на таком уровне, чтобы диалект был не особо важен

короче тут такое дело - любая самостоятельная работа по теме идёт в плюс

shty ★★★★★
()
Ответ на: комментарий от blinkenlichten

Писать на прологе плеер — действительно плохая идея, но это вовсе не означает, что язык не нужен.

buddhist ★★★★★
()
Ответ на: комментарий от buddhist

Суть процесса обучения — научиться максимизировать полезную работу при минимизации усилий.

это вторая часть, необязательная, первая часть - научиться получать знания самостоятельно

shty ★★★★★
()
Ответ на: комментарий от yoghurt

yoghurt

лишь бы оно заработало на универских компах

сдавать-то я буду на нетбуке

do0dlez ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.