Ryan Gough
Software developer, C# by day, Erlang and JS by night.
Adventures in JavaScript Logic Programming
Margaret Hamilton is a Programmer
Margaret Hamilton Programs Assembly
AND
Adele Goldberg
Margaret Hamilton
Assembly
Smalltalk
Adele Goldberg | Smalltalk |
Maragret Hamilton | Assembly |
Programs(Adele Goldberg, Smalltalk)
Programs(Margaret Hamilton, Assembly)
There exists an X such that Programs(X, Assembly)
At least one programmer programs assembly.
different(red,green).
different(green,red).
different(red,blue).
different(blue,red).
different(red,yellow).
different(yellow,red).
different(yellow,green).
different(green,yellow).
different(yellow,blue).
different(blue,yellow).
different(green,blue).
different(blue,green).
colour(Ten,Mis,Ala,Geo,Flo) :-
different(Ten,Mis),
different(Ten,Ala),
different(Ten,Geo),
different(Mis,Ala),
different(Ala,Geo),
different(Ala,Flo),
different(Geo,Flo).
// entity declaraton
Album(a), Album_name(a:name) -> string(name).
// album attribute declaration
Album_year[a] = year -> Album(a), int(year).
// predicate declaration
BerlinPeriod(a) -> Album(a).
// rule
BerlinPeriod(a) <-
1980 > Album_year[a] > 1976.
+Album(a),
+Album_name(a,"Station To Station"),
+Album_year[a] = 1976.
+Album(a),
+Album_name(a,"Low"),
+Album_year[a] = 1977.
+Album(a),
+Album_name(a,"Heroes"),
+Album_year[a] = 1977.
+Album(a),
+Album_name(a,"Lodger"),
+Album_year[a] = 1979.
+Album(a),
+Album_name(a,"Scary Monsters"),
+Album_year[a] = 1980.
ryan@blahbox:~/dev/logiql$ lb query bowie '_(x) <- BerlinPeriod(x).'
/--------------- _ ---------------\
[10000000004] "Lodger"
[10000000005] "Heroes"
[10000000007] "Low"
\--------------- _ ---------------/
By Ryan Gough
Adventures in Logic Programming