De Eiffeltoren is een zeer iconisch bouwwerk, er zijn dan ook een hele boel replica’s van verspreid over de wereld.
Gegeven een database1 met feiten van de vorm replica_size(Naam, Grote)
, replica_country(Naam, Land)
en replica_place(Naam, (X,Y))
die de waarden geven die de naam suggereert waarbij Grote
gegeven is als 1:Scale
. Schrijf volgende predicaten:
replicas_in(Land, L)
: Die L
unificeert met een alfabetisch gesorteerde lijst van replica’s in Land
top_replicaters(SortedList)
: Die SortedList
unificeert met een lijst van koppels van de vorm (Land, Aantal)
gesorteerd van hoog Aantal
naar laag en vervolgens alfabetisch op naam van het land.map_replicas_countries(ReplicaNames, Countries)
: die een lijst van replica namen omzet in een lijst van landen waarin die zich bevinden.Maak gebruik van de ingebouwde predicaten setof/3
, bagof/3
, maplist
, sort/4
.
?- replicas_in("China",List).
List = ["Eiffel Tower of Tiandu City Community (also called Tianducheng)", "Eiffel Tower of Window of the World", "Long Ta"].
?- top_replicaters(List).
List = [("USA", 9), ("Russia", 4), ("China", 3), (..., ...)|...].
?- map_replicas_countries(["Las Vegas Eiffel Tower", "Krasnoyarsk Eiffel Tower"], Countries).
Countries = ["USA", "Russia"].