That's very cute.

To be more useful we need, better syntax colouring
from J.  By examining J words (without executing),
assuming conjunctions and adverb phrases will result
in verbs,  it is possible to determine all of the
components of a sentence, dyad vs monad execution of
verbs.  Underline/italics and colour codes can help
readers parse sentence as J will. Even, ranks of verb
phrases could be indicated by superscripts.

Your example of J's elegance also exposes it as a
parlour trick, implying a closer connection to natural
language than really exists.  Understanding your
sentences requires thorough understanding of what part
of speech each word (you defined) is.  Would be
substantially enhanced by syntax colouring.

On a similar note, I have not noticed any J code that
does the minor syntax formatting currently in place in
the editor.  Is it J code included or editor specific?
 If not J code, could this be changed to either let a
J function return an RTF encoded string (when passed a
J sentence), or whatever other formatting language
you'd prefer?


--- June Kim <[EMAIL PROTECTED]> wrote:

> Hello, everyone.
> 
> Recently, there was a question on passing more than
> two arguments to a
> verb on this mailing list and my response was:
> 
>   first=. 0{]
>   second=. 1{]
>   third=. 2{]
>   f=. first + second * third
>   f 1 2 3
> 7
> 
> Of course, there is a way of passing a list of
> arguments and
> separately assign them into different names using
> multiple
> assignments:
> 
> f=: 3 : 0
> 'a b c' =. y
> a+b*c
> )
>    f 10 2 3
> 16
>    f 10;2;3
> 16
> 
> At the time, I thought that this sort of passing
> more than two
> arguments should be a last resort. There might be a
> better way of
> reorganizing the verbs and arguments so that passing
> more than two
> arguments isn't needed in the first place. Looking
> at the problem from
> a new perspective(usually, J-friendly one) helps.
> You should come up
> with a whole new model of solving the problem.
> 
> I think that's why Miller, Raul D answered as:
> 
> [quote]
> It's really not a good idea to focus too narrowly on
> a specific part
> of a calculation -- it's better to start with an
> overall description
> of the problem at hand.
> 
> A couple other examples
>  NB. scale and add
>  ([: +/ 2 3 4 * ]) list
> 42
> 
>  NB. polynomial
>  list p. 100
> 100001
> [/quote]
> 
> This is a very good advice, and I wholeheartedly
> agree.
> 
> Now I'm thinking of a different approach. Still
> maintaing the same
> model of solving the problem, you could avoid
> passing around more than
> two arguments. I'll use interest calculation for the
> example. Have a
> look at "http://en.wikipedia.org/wiki/Interest"; for
> the formulae, in
> case you aren't sure of it.
> 
> 
>    at=:*
>    percent=: adverb def '0.01*m'
>    year=:years=: adverb def 'm'
> 
>    NB. what we want is....
>    NB. $4500 at 9.5 percent simple interest for 6
> years
>    NB. and almost a direct translation is possible
>    NB. (you could choose your, or your customer's
> preferable level of verbosity)
> 
>    simplefor=:1+*
>    (4500*(1+0.095*6))-: 4500 at 9.5 percent
> simplefor 6 years
> 1
> 
>    compoundfor=:>:@[^]
>    (4500*(1+0.095)^6)-: 4500 at 9.5 percent
> compoundfor 6 years
> 1
> 
> 
> Now we want to extend the verb compoundfor to treat
> multiple times of
> payment in a year:
> 
>    NB. times per year
>    tpy=:conjunction : (':';' (x%u) v (y*u) ')
> 
>    (2000*(1+0.095%3)^3*5)-: 2000 at 9.5 percent 3
> tpy compoundfor 5 years
> 1
> 
> In the wiki page, it says "Many banks advertise an
> annual percentage
> yield (APY) which is the return on the principal
> over an entire year.
> For example, a 5% rate compounded monthly would have
> an approximate
> APY of 5.12%." Incidentally, we can easily calculate
> APY thanks to the
> decomposition of the calculation:
> 
>    NB. annual percentage yield
>    0.005 >: | 5.12 percent - <: 5 percent 12 tpy
> compoundfor 1 year
> 1
> 
> We could even abstract it away with a new verb, say
> apy, for example:
> 
>    apy=: 13 : '<: x y tpy compoundfor 1 year'
>    5 percent apy 12
> 0.0511619
> 
> Any comments and suggestions?
> 
> June
>
----------------------------------------------------------------------
> For information about J forums see
> http://www.jsoftware.com/forums.htm
> 


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to