m~ Evoke Adverb
name =: 'value of name' m =: 'name' m~ value of name ('na','me')~ value of name
When m is the name of a noun, m~ is the same as (". m) (which executes the phrase m to produce the noun result). But when m is not a noun, only m~ will work OK
". m NB. ".m works OK when value of name is a noun value of name name =: + NB. name has a value, but it is NOT a noun m~ NB. m~ still works + ]z =: ". m NB. but ".m evaluates to '' assert z -: ''
NB. Parse string: y and call the callback verb named (x) NB. with the result as its y-argument. parse=: 4 : 0 result=. |.y NB. (sample processing applied to y) x~ result )
1. (m~) is peculiar when (m) is one of the special local names (x y u v m n) in an explicit definition. When those names are used normally in a sentence, they are always replaced by their value, and thus the special name never appears on the execution stack. When the special name is the (m) in (m~), it is not replaced by its value, and thus the special name does appear on the execution stack. This usually results in a value error.