appliedto is an adverb. (happens to always return true, and select only right hand of gerund argument) mult is a monad that returns a gerund
Your last example is V A V which gets parsed as (V A) V But appliedto needs a gerund argument to not be a domain error. (mult appliedto) is an error. mult is a verb, not a gerund. (] * +:) gives the result you want. On Wednesday, June 22, 2022, 07:36:08 a.m. EDT, Jacques Bailhache <jacques.bailha...@gmail.com> wrote: Hi, I am learning J and I don't understand something about forks. According to https://www.jsoftware.com/help/primer/fork.htm : (f g h) y evaluates as (f y) g (h y) I define this dyad : appliedto =: @.(]@1) and this monad : mult =: 3 : ']`(* & y)' Here is an example using these functions : (mult 10) appliedto (+: 10) 200 Normally it should be equivalent to this fork but it does not work : (mult appliedto +:) 10 |domain error | (mult appliedto+:)10 Do you understand why I get this error ? Regards, Jacques ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm