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

Reply via email to