RosettaCodeData/Task/Sort-an-array-of-composite-structures/Bracmat/sort-an-array-of-composite-structures-3.bracmat
2015-11-18 06:14:39 +00:00

21 lines
619 B
Text

( ((name.map),(weight.9),(value.150))
((name.compass),(weight.13),(value.35))
((name.water),(weight.153),(value.200))
((name.sandwich),(weight.50),(value.60))
((name.glucose),(weight.15),(value.60))
: ?array
& ( reverse
= e A
. :?A
& whl'(!arg:%?e ?arg&!e !A:?A)
& !A
)
& out$("Array before sorting:" !array \n)
& 0:?sum
& whl
' (!array:%?element ?array&!element+!sum:?sum)
& whl
' (!sum:%?element+?sum&!element !array:?array)
& out$("Array after sorting (descending order):" !array \n)
& out$("Array after sorting (ascending order):" reverse$!array \n)
);