language Essence 1.3 $ prob133.essence: Knapsack Problem given items new type enum given weight, gain : function (total) items --> int given capacity : int find picked : set of items maximising sum i in picked . gain(i) such that (sum i in picked . weight(i)) <= capacity