On Thu, Apr 3, 2014 at 6:19 PM, Omar Antolín Camarena <
omar.anto...@gmail.com> wrote:

> fn =: 1 : '(2 2 1 1 4 3 3 {~ 1 i.~ (_1 <\ ''vnumxy'') e. ;: m) : m'
>

That's clever thinking.


> 1. In APL's with this {} syntax, can you force a function whose source code
> only mentions omega to be dyadic? I.e., in J I can do 3 : 'y*y', but also 4
> : 'y*y'.
>

Here's how you can do that the fn way:

'y * y return. x' fn


> 2. Beyond these what are the advantages and disadvantages of J's and APL's
> {} way of dealing with explicit definition?
>

J's way lets you define both monadic and dyadic definitions together.

And, on a related note, the way you have defined fn, adverbs (and
conjunction) can only produce monadic verbs. You do not support things like
this:

combiner=:1 :0
:
  x,m,y
)

3. Why does J require you to specify the left argument to :? Is it for the
> reason in question 1?
>

J allows two different kinds of left arguments for :

A numeric left argument controls the type of explicit definition being
generated.

But you can also combine two verbs. Consider, for example:

   ('-y' fn) : ('x-y' fn)

That's a long-winded way of expressing subtraction, but the point is that
both monadic and dyadic definitions are supported.

   10 '-y' fn : ('x-y' fn) 3
7
   '-y' fn : ('x-y' fn) 3
_3

4. Is there a better name for this adverb than fn?
>

We could call it George, if you like?


> 5. What would be a more robust rule for picking the type of the resulting
> operator? I mean, presumably  'u * x i. u=. ~. y' (ignore the random
> nonsense) is meant to be a dyadic verb even though it contains a u. I guess
> one could only count references to u if u never occurs as the target of a
> copula or something like that. (I don't think this problem arises in APL,
> because I don't think assignments to alphalpha are allowed, but I might be
> wrong.)


Hopefully my answers to your question 1 and 2 shed some light on this issue.

Thanks,

-- 
Raul
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to