git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1288 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
		
			
				
	
	
		
			147 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			147 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
=================================================================
 | 
						|
Logtalk - Object oriented extension to Prolog
 | 
						|
Release 2.25.0
 | 
						|
 | 
						|
Copyright (c) 1998-2005 Paulo Moura.  All Rights Reserved.
 | 
						|
=================================================================
 | 
						|
 | 
						|
 | 
						|
% start by loading the example:
 | 
						|
 | 
						|
| ?- logtalk_load(dcgs(loader)).
 | 
						|
...
 | 
						|
 | 
						|
 | 
						|
% DCG rules implementing a simple calculator:
 | 
						|
 | 
						|
| ?- calculator::parse("1+2-3*4", Result).
 | 
						|
 | 
						|
Result = -9
 | 
						|
yes
 | 
						|
 | 
						|
 | 
						|
% recognizing gramatically correct sentences:
 | 
						|
 | 
						|
| ?- sentence::parse([the, girl, likes, the, boy], Result).
 | 
						|
 | 
						|
Result = true
 | 
						|
yes
 | 
						|
 | 
						|
| ?- sentence::parse([the, girl, scares, the, boy], Result).
 | 
						|
 | 
						|
Result = false
 | 
						|
yes
 | 
						|
 | 
						|
 | 
						|
% generating parse trees for sentences:
 | 
						|
 | 
						|
| ?- parsetree::parse([the, girl, likes, the, boy], Tree).
 | 
						|
 | 
						|
Tree = s(np(d(the), n(girl)), vp(v(likes), np(d(the), n(boy))))
 | 
						|
yes
 | 
						|
 | 
						|
 | 
						|
% bill of materials example:
 | 
						|
 | 
						|
| ?- bom::parts(bike, L).
 | 
						|
 | 
						|
L = [frame, crank, pedal, pedal, chain, spokes, rim, hub, spokes, rim, hub]
 | 
						|
yes
 | 
						|
 | 
						|
| ?- bom::parts(wheel, L).
 | 
						|
 | 
						|
L = [spokes, rim, hub]
 | 
						|
yes
 | 
						|
 | 
						|
 | 
						|
% parsing command-line shell input:
 | 
						|
 | 
						|
| ?- shell::parse("pwd; cd ..; ls -a", L).
 | 
						|
 | 
						|
L = [pwd,'cd ..','ls -a'] ? 
 | 
						|
 | 
						|
yes
 | 
						|
 | 
						|
 | 
						|
% walker movements:
 | 
						|
 | 
						|
| ?- walker::walk([n(5), e(4), s(2), nw(8), s(5), se(1), n(4)], Ending).
 | 
						|
 | 
						|
Ending = -0.94974746830583223,6.9497474683058318 ? 
 | 
						|
 | 
						|
yes
 | 
						|
 | 
						|
 | 
						|
% conversion between compound terms and XML:
 | 
						|
 | 
						|
| ?- xml::convert(word(child, children), word(singular, plural), XML).
 | 
						|
 | 
						|
XML = '<word><singular>child</singular><plural>children</plural></word>' 
 | 
						|
yes
 | 
						|
 | 
						|
| ?- xml::convert(Term, Interpretation, '<word><singular>child</singular><plural>children</plural></word>').
 | 
						|
 | 
						|
Term = word(child, children)
 | 
						|
Interpretation = word(singular, plural) 
 | 
						|
yes
 | 
						|
 | 
						|
 | 
						|
% parsing URLs:
 | 
						|
 | 
						|
| ?- url::parse("http://www.logtalk.org", Components).
 | 
						|
 | 
						|
Components = [protocol(http), address([www, logtalk, org]), path([]), file('')] 
 | 
						|
yes
 | 
						|
 | 
						|
| ?- url::parse("http://www.logtalk.org/", Components).
 | 
						|
 | 
						|
Components = [protocol(http), address([www, logtalk, org]), path(['']), file('')] 
 | 
						|
yes
 | 
						|
 | 
						|
| ?- url::parse("http://www.logtalk.org/cvs", Components).
 | 
						|
 | 
						|
Components = [protocol(http), address([www, logtalk, org]), path([cvs]), file('')] 
 | 
						|
yes
 | 
						|
 | 
						|
| ?- url::parse("http://www.logtalk.org/cvs.html", Components).
 | 
						|
 | 
						|
Components = [protocol(http), address([www, logtalk, org]), path([]), file('cvs.html')] 
 | 
						|
yes
 | 
						|
 | 
						|
| ?- url::parse("http://193.136.64.5/files/update", Components).
 | 
						|
 | 
						|
Components = [protocol(http), address([193, 136, 64, 5]), path([files, update]), file('')] 
 | 
						|
yes
 | 
						|
 | 
						|
 | 
						|
% command language example:
 | 
						|
 | 
						|
| ?- faa::main.
 | 
						|
Fly Amzi! Air
 | 
						|
enter command> list flights
 | 
						|
aa101
 | 
						|
aa102
 | 
						|
aa103
 | 
						|
enter command> book elana aa102
 | 
						|
enter command> book tom aa102
 | 
						|
enter command> list passengers aa102
 | 
						|
elana
 | 
						|
tom
 | 
						|
enter command> exit
 | 
						|
yes
 | 
						|
 | 
						|
 | 
						|
% double bypass using the {}/1 control constructs of grammar rules and Logtalk:
 | 
						|
 | 
						|
| ?- bypass::phrase(foo, _, _).
 | 
						|
 | 
						|
bar predicate called
 | 
						|
yes
 | 
						|
 | 
						|
 | 
						|
% run the Logtalk DCG translator on the test cases:
 | 
						|
 | 
						|
| ?- dcgtest::run.
 | 
						|
 | 
						|
...
 |