Ok, given the clarifications in the message from Pepe with that subject,
here's a whack at it:

**SPOILERS BELOW**



















           lrv =:  (^:_1) b. (`(<_1;~":0)) (`:6)


           
           boxopen f. lrv
        <^:(L. = 0:)
           
           (<^:(L. = 0:)) lrv
        <^:(L. = 0:)
           
           list lrv
        list
           
           list f. lrv
        3 : 0
        w=. {.wcsize''                        
        w list y                              
        :
        if. 0=#y do. i.0 0 return. end.       
        if. 2>#$y=. >y do.                    
          d=. (' ',LF) {~ LF e. y=. toJ ": y  
          y=. [;._2 y, d #~ d ~: {: y         
        end.                                  
        y=. y-. ' '{.~ c=. {:$ y=. (": y),.' '
        (- 1>. <. x % c) ;\ <"1 y             
        )          

The basic insight here is that we want an adverb not dissimilar to  b. : one
that accepts a verb argument and (with a little convincing) produces a
linear rep.  

That was the easy part.  What I struggled with is I (mistakenly!) thought
the challenge was asking for behavior similar to this:
 
           flrv =:  (^:_1) b. (`(<_1;~":0)) (5!:5@< :: ]`) (`:6)

           type flrv
        {&(<;._1 '|invalid name|not
defined|noun|adverb|conjunction|verb|unknown')@(2&+)@(4!:0)&boxopen

But, implicitly or explicitly, deprecrating 5!:5 (which is unsatisfying).
That is, some elegant mechanism to force a name to be stacked by value,
which in concert with the original lrv would admit   flrv =:
adverbToStackNameByValue lrv (among many other uses!).

So: NEW CHALLENGE.  

Write a tacit adverb which takes a verb argument, which if anonymous it
produces untouched, and if named (proverb) produces its definition.  The
adverb may not rely on : (explicit conjunction) or 5!:n (but maybe other
foreign are OK).  Note, of course, that f. is not a candidate for this tool,
as we just want to "peel off" one layer of naming, if present, not all
layers.)

I've got no spoilers for this one.

-Dan 

-----Original Message-----
From: programming-boun...@jsoftware.com
[mailto:programming-boun...@jsoftware.com] On Behalf Of Dan Bron
Sent: Monday, February 20, 2012 8:03 PM
To: 'Programming forum'
Subject: Re: [Jprogramming] tacit adverb

Oh, and would it be valuable if the domain were extended to nouns, in
particular literal vectors or boxed strings which represent J names,
potentially pro-adverbs or pro-conjunctions?

-Dan

-----Original Message-----
From: Dan Bron [mailto:j...@bron.us] 
Sent: Monday, February 20, 2012 8:01 PM
To: 'Programming forum'
Subject: RE: [Jprogramming] tacit adverb

I just saw this message and I haven't looked at the rest of the thread yet,
because I'm afraid of spoilers, so I don't know if there are clarifications,
amplifications, or alterations to the challenge.   

But there's a pretty simple solution, depending on the domain of the adverb.
So: what is the domain of the adverb?  In particular, can I always expect a
proverb whose referent is a tacit verb?  Can the argument be anonymous?  Can
it be (or contain) explicit? 

Re:  
>  bonus points for a fixed version

Is this for a fixed version of the adverb, or if the adverb produces the
fixed version of its argument?  If the latter, is there some reason to
suspect that  flrv =: f. lrv  would not suffice ? 

-Dan


-----Original Message-----
From: programming-boun...@jsoftware.com
[mailto:programming-boun...@jsoftware.com] On Behalf Of Jose Mario Quintana
Sent: Monday, February 20, 2012 2:56 PM
To: Programming forum
Subject: Re: [Jprogramming] tacit adverb

Now, a challenge/puzzle: write a tacit adverb (lrv) that produces the linear
representation of its input verb (bonus points for a fixed version), for
example,

   type lrv
type
   type f. lrv
{&(<;._1 '|invalid name|not
defined|noun|adverb|conjunction|verb|unknown')@(2&+)@(4!:0)&(<^:(L. = 0:))

SPOILER ALERT: A Solution is presented below...































Another challenge is to evade the linear representation persistent bug to
show the adverb:

   lrv=. (".(0 : 0) -. LF)`:6
(<(<,'4'),<(<(<,'4'),<(<(<,'4'),<(<(<,'4'),<<;._1 ' 0:
:.'),<(<,'4'),<(<,'`'),<(
<,'0'),<(<'b.'),<(,'0');_1),<(<,'4'),<(<'`:'),<(,'0');6),<(<,'4'),<(<(<,'4')
,<(<
(<,'4'),<(<(<,'4'),<(<(<,'4'),<(<(<,'4'),<(<,'"'),<(,'0');_),<(<,'4'),<(<(<'
@:')
,<(<,'<'),<(<,'3'),<(<<;._1 ' 0
0'),(<(<,'&'),<;:',<'),<,']'),<'@:'),<(<,'4'),<(
<,'`'),<(<,'0'),<<(,'0');_),<(<,'4'),<(<'`:'),<(,'0');6),<(<,'4'),<(<(<,'&')
,<(<
(,'0');_5),<'}.'),<,'`'),<(<,'4'),<(<'`:'),<(,'0');6)
)

   lrv
(((0: :.)(`(b.`_1)))(`:6))(((((("_)(<@:((,'0') ,&<
])@:))(`_))(`:6))(_5&}.`))(`:6))

   type lrv
type
   type f. lrv
{&(<;._1 '|invalid name|not
defined|noun|adverb|conjunction|verb|unknown')@(2&+)@(4!:0)&(<^:(L. = 0:))

Oh yes, I cheated!  I used b. _1 to get the linear representation of the
adverse of the adverse of the input verb. The code of the adverb can be
shorter; most of it is related to (_5&}.) dropping 5 trailing characters
(':. 0:') but it illustrates how to tacitly transform a verb into its
corresponding adverb.  A direct, non-cheating, version is possible but quite
more difficult (as far as I can see).





________________________________________
From: programming-boun...@jsoftware.com [programming-boun...@jsoftware.com]
on behalf of Dan Bron [j...@bron.us]
Sent: Monday, February 20, 2012 11:02 AM
To: 'Programming forum'
Subject: Re: [Jprogramming] tacit adverb

>   A=: 1 : '0&(;@:u) :: empty'

Can be expressed tacitly as B=: 0&(;@:) (:: empty) .  In general, tacit
adverbs are trains of adverbial clauses, so if you want to add another, you
only need to wrap it in parens and tack it on the end.

Though your phrasing  0&(;@:)  is very appealing; it seems to "beg for an
argument" more than the vanilla formulation of  (0&) (;@:)  .

-Dan

-----Original Message-----
From: programming-boun...@jsoftware.com
[mailto:programming-boun...@jsoftware.com] On Behalf Of David Ward Lambert
Sent: Monday, February 20, 2012 10:50 AM
To: programming
Subject: [Jprogramming] tacit adverb

I had

   A=: 0&(;@:)
   u A y

My u raises an error if y is bad, in which case EMPTY is a reasonable
result.  I'd prefer not checking y in each u.  What is the tacit

   A=: 1 : '0&(;@:u) :: empty'

?  Thanks, Dave.

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

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
[BEST LLC]

Bayesian Efficient Strategic Trading LLC

The information in this communication and any attachment is confidential and
intended solely for the attention and use of the named addressee(s). Any
views or opinions presented are solely those of the author and do not
necessarily represent those of BEAM Bayesian Efficient Asset Management, LLC
(BEAM), Bayesian Efficient Strategic Trading, LLC (BEST) and/or their
affiliates unless otherwise specifically stated. All information and
opinions expressed herein are subject to change without notice. This
communication is not to be construed as an offer to sell or the solicitation
of an offer to buy any security. Any reliance one may place on the accuracy
or validity of this information is at their own risk. Past performance is
not necessarily indicative of the future results of an investment. If you
are not the intended recipient, or a person responsible for delivering this
to the intended recipient, you are not authorized to and must not disclose,
copy, distribute, or retain this
  message or any part of it. If you are not the intended recipient, please
permanently delete all copies of this communication and any attachments from
your computer system, destroy any hard copies, and immediately notify the
sender or BEAM/BEST at either i...@2bestsystems.com, i...@beamstrategy.com
or (201) 792-1002. No waiver of confidentiality or privilege is made by
mistransmission.


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

----------------------------------------------------------------------
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