As we contemplate re-stylizing operations to embrace enfix more, one kind of historically ugly construct that could use an improvement is ALSO.
Consider this line from IN-DIR:
also do block change-dir old-dir
This is a shorthand for writing:
(temp: do block | change-dir old-dir | temp)
But ALSO's meaning is kind of like "here's an afterthought...do it after, but don't worry about its result". Wouldn't it look better if the "announcement" that you're going to have an afterthought--the ALSO word--came after the value, instead of being mentioned before it? Something like:
do block also [change-dir old-dir]
This resembles THEN and ELSE, in that it's enfixed to take a value on the left and then run code on the right. The difference is that instead of being a "conditional", it would be an..."unconditional". THEN and ELSE are examining their left hand side, and based on it either pass that value through, or evaluate the right hand branch. Here ALSO would always execute the branch, but output what it got from the left unmodified.
A fancy illustrative chain, to show them all together:
switch x [ 1 [print "it was one"] 2 [print "it was two"] ] then [ print "it was either one or two" ] also [ print "it was anything, this always runs" ] else [ print "it was neither one nor two" ]
I like that it's the same number of letters as THEN and ELSE.
UPDATE: In the intervening time, it has been noticed that this desire is covered by ELIDE.
Hence ALSO has been re-imagined as a slightly different construct that only runs in the truthy case, but preserves its output.
Question: If ALSO becomes the infix version, what's "prefix-also" supposed to be called? THEN and ELSE are EITHER-VALUE and EITHER-VOID in their prefix form. ALSO breaks the pattern because it always evaluates its branch but never returns the branch evaluated result.