> Oh.  I'm probably the last one to notice this.  Let's call this

I say that probability is zero :)

On the one hand, the behavior of f. is what I expect; I have a fixing habit
and I would hate a change in its behavior.  On the other hand, the ranks mv
lv rv seem a "natural" choice for m~ in the following sense: both, the word
from linear extension, foreign adverb 104!:1 (
http://www.jsoftware.com/pipermail/programming/2013-March/031835.html ) and
Dan's anonymous evoke (not to mention dont),
http://www.jsoftware.com/svn/DanBron/trunk/environment/anonymous_evoke2.ijs
developed independently appear to concur.

>   v f. 1 2 3           NB. *not* the same as  v 1 2 3:

I would also like v, v f. (and 'v'f.), 'v'~ and 'v' (104!:1) to produce the
same results.  Could I have all my wishes by dropping the "sticky rank"?
 If so, would there be any unwanted unintended consequences?

> Question to everybody:
>
> If I were to re-implement J and would "auto-correct"/"recompile"
.
.
.
>    [ ] don't give a damn either way

Is it really the last choice, by default, the most popular?




On Thu, Jul 25, 2013 at 5:38 PM, <[email protected]> wrote:

> I learned something new in the last 90 minutes, this is a small
> summary.
>
> (I always tell people that one never stops learning J.  Nevertheless
> I'm still  always a bit surprised when this holds for me, too.  :-)
>
> It dawns on me that I just re-answered the "when is v f. not v?" FAQ
> which I admittedly always skipped so far.
>
>
> Roger Hui wrote:
> > a. The dictionary entry for m~ should not say that its rank is _ .
>
> I always felt that _ (or rather: _ _ _) was quite an appropriate choice
> for the rank of m~ verbs.  My reasoning:  the entire purpose of this
> construct is dynamic/deferred name evaluation, and _ _ _ is the best
> a priori rank fixing which is meaningful here.
>
> > The ranks should be mv lv rv, which are the ranks of the named verb.
>
> My first reaction on this was "No way!"  Becase, what does that mean for:
>
>    foo = +:
>    v =. 'foo'~
>    v b. 0               NB. now according to the suggested mv lv rv ruling:
> 0 0 0
>    foo =. |.
>    v b. 0
> ? ? ?
>
> My question being how much we want to mess with the "intrinsic" rank
> of a verb.
>
> However, before I haggle about the m~ rank, I should probably
> first try decide for myself how "intrinsic" or "sticky" I want
> to settle the following, a bit more essential question:
>
> Tests with J4/6/7 all show this behaviour:
>
>    foo =. +:
>    v =. <@foo
>    v b. 0
> 0 0 0
>    v i. 3
> +-+-+-+
> |0|2|4|
> +-+-+-+
>
> NB. So far, so good, nothing special here.
> NB. Now let us redfine foo and see what happens:
>
>    foo =. <
>    v b. 0
> 0 0 0
>    v i. 3
> +---+---+---+
> |+-+|+-+|+-+|
> ||0|||1|||2||
> |+-+|+-+|+-+|
> +---+---+---+
>    v
> <@foo
>
> Oh.  I'm probably the last one to notice this.  Let's call this
> behaviour
>
>         "Named verbs have sticky rank."
>
> While I can understand this actual behaviour, I am not sure whether
> I should like it.  I certainly don't like that this experiment can
> be continued with:
>
>    v f. 1 2 3           NB. *not* the same as  v 1 2 3:
> +-------+
> |+-----+|
> ||1 2 3||
> |+-----+|
> +-------+
>
> Then again:  fixing 'm'~ at rank mv ml mr early on is just consistent
> with v having sticky rank.
>
> Question to everybody:
>
> If I were to re-implement J and would "auto-correct"/"recompile"
> derived definitions, would you...
>
>    [ ] like it
>    [ ] hate it because it's changing past behaviour
>    [ ] consider it conforming to the Dictionary
>    [ ] cry foul because you think The Dictionary mandates "sticky rank"
>    [ ] don't give a damn either way
>
>                                                                 Martin
> ----------------------------------------------------------------------
> 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