@montag supposing you have a two-column CSV of english and spanish words (en-es.csv), a program that selects a random line from a csv (randline), and a program which displays the first of two values and prompts for the second (prompttest), the first case is
cat en-es.csv | randline | prompttest
“flipping the cards over” is in fact fairly trivial and natural to do in this case
cat en-es.csv | randline | awk -F, '{ print $2 "," $1 }' | prompttest
i’m not saying this just to be contrarian. but i think your original point is a bit wrong in treating arbitrary or emergent manipulation as something that needs to be “programmed in”. in contrast, i think in many cases it has been deliberately programmed OUT
we do have (very old) techniques and paradigms for manipulating data in computer systems in much the same way as one might manipulate a physical object. these techniques have, in many cases, deliberately not been used in modern applications, because the developers of those applications have found it undesirable to give users that kind of power
@Lady That's a really good point and that's something I've liked about using command line stuff (although to be honest I wouldn't be able to remember the awk code off the top of my head). Most new interfaces these days seem to be more like a bundle of separate features (with a little button for each of them) instead of a system of interconnected tools.