Like others, I'm learning to use j effectively on tiny smart phone display. I had considered preprocessing source with m4 to produce long j sentences. Considering m4 helped me finally understand eval. Eval directly converts literals into j code. Now I have another option to compose j.
Thank you all.

   Eval =: 1 : 'a: 1 : m'
   increase =: '([: $: >:)'
   result =: '(])'
   choose =: '(3 < |)'
   (increase,'`',result,'@.',choose)Eval
([: $: >:)`]@.(3 < |)

   (increase,'`',result,'@.',choose)Eval 1
4

   NB. I have not found m4 for android.

Date: Tue, 29 Jul 2014 22:43:21 -0700
From: "'Pascal Jasmin' via Programming"<programm...@jsoftware.com>
To:"programm...@jsoftware.com"  <programm...@jsoftware.com>
Subject: Re: [Jprogramming] recursive agenda with named components
Message-ID:
        <1406699001.37116.yahoomail...@web122605.mail.ne1.yahoo.com>
Content-Type: text/plain; charset=iso-8859-1

? ?eval =:?1 : ' a: 1 :  m'?
? ?A =: 1 : (,'u')
? ?eval2ger =:?3 : 'a=. A for_i.  y do. a=.  (>i) eval a `  end. '''' a'

a partial way of doing it,

? (eval2ger@:((<' f.') ,~ each ]) 'increment';'result')@.choose f.
([: $: >:)`]@.(3 < |)

eval2ger takes a boxed list of string expressions, and turns them into a gerund 
expression. ?The other part "automates" adding f. inside the expression.

________________________________
From: David Lambert<b49p23t...@stny.rr.com>
To: programming<programm...@jsoftware.com> Sent: Tuesday, July 29, 2014 10:05:54 PM
Subject: [Jprogramming] recursive agenda with named components


Suppose I have a recursive verb

? ? ([: $: >:)`]@.(3 < |)

And I want to name the components

? ? increment =: [: $: >:
? ? result =: ]
? ? choose =: 3 < |

? ? increment`result@.choose  f.
3 : '[: $: >: y' :(4 : 'x [: $: >: y')`]@.(3 < |)

J carefully isolated recursion to the named verb
Thus I really want to, in symbolic language, Map f.

? ? (increment f.)`(result f.)@.(choose f.)
([: $: >:)`]@.(3 < |)

Or in this case, simply

? ? (increment f.)`result@.choose  f.
([: $: >:)`]@.(3 < |)

Is there a way to map f. ?? I tried literals with Define (5!:0) but of
course I'd need to construct a complicated boxed structure.

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

Reply via email to