Mercury 勉強メモ

関数論理型言語 Mercury を勉強するブログです.

P-99: 1.28 Sorting a list of lists according to length of sublists

P-99: Ninety-Nine Prolog Problemsの問題にMercuryで解答していきます.

a)

[["o"], ["d", "e"], ["d", "e"], ["m", "n"], ["a", "b", "c"], ["f", "g", "h"], ["i", "j", "k", "l"]]

b)

[["i", "j", "k", "l"], ["o"], ["a", "b", "c"], ["f", "g", "h"], ["d", "e"], ["d", "e"], ["m", "n"]]

P-99: 1.27 Group the elements of a set into disjoint subsets

P-99: Ninety-Nine Prolog Problemsの問題にMercuryで解答していきます.

a)

["aldo", "beat"]["carla", "david", "evil"]["flip", "gary", "hugo", "ida"]
["aldo", "beat"]["carla", "david", "flip"]["evil", "gary", "hugo", "ida"]
["aldo", "beat"]["carla", "david", "gary"]["evil", "flip", "hugo", "ida"]
["aldo", "beat"]["carla", "david", "hugo"]["evil", "flip", "gary", "ida"]
["aldo", "beat"]["carla", "david", "ida"]["evil", "flip", "gary", "hugo"]
...
["hugo", "ida"]["david", "flip", "gary"]["aldo", "beat", "carla", "evil"]
["hugo", "ida"]["evil", "flip", "gary"]["aldo", "beat", "carla", "david"]

b)

[["aldo", "beat"], ["carla", "david"], ["evil", "flip", "gary", "hugo", "ida"]]
[["aldo", "beat"], ["carla", "evil"], ["david", "flip", "gary", "hugo", "ida"]]
[["aldo", "beat"], ["carla", "flip"], ["david", "evil", "gary", "hugo", "ida"]]
[["aldo", "beat"], ["carla", "gary"], ["david", "evil", "flip", "hugo", "ida"]]
...
[["hugo", "ida"], ["evil", "gary"], ["aldo", "beat", "carla", "david", "flip"]]
[["hugo", "ida"], ["flip", "gary"], ["aldo", "beat", "carla", "david", "evil"]]

P-99: 1.26 Generate the combinations of K distinct objects chosen from the N elements of a list

P-99: Ninety-Nine Prolog Problemsの問題にMercuryで解答していきます.

["a", "b", "c"]
["a", "b", "d"]
["a", "b", "e"]
["a", "b", "f"]
["a", "c", "d"]
["a", "c", "e"]
["a", "c", "f"]
["a", "d", "e"]
["a", "d", "f"]
["a", "e", "f"]
["b", "c", "d"]
["b", "c", "e"]
["b", "c", "f"]
["b", "d", "e"]
["b", "d", "f"]
["b", "e", "f"]
["c", "d", "e"]
["c", "d", "f"]
["c", "e", "f"]
["d", "e", "f"]