Dan,

The problem is, as you now know,  exceeding the 100 KB limit.  So I
followed Chris’ advice and trimmed the old messages.

These are the answers to your questions,

   [: u0 u1 At
u0@:u1

I should point out that neither there is a train nor a need for
parentheses. There is an issue when there is a single verb in the strand
(because a verb associated to / is not executed when the argument is a
single item),

   [: u0 At
┌──┐
│u0│
└──┘

It can be fixed as follows but I might not be worth it,
   At=. (train ^: (L.~: 0:)) o ((at~&:train)/) o |. f. sv
   [: u0 At
|value error: u0
   [: * At
*
It also produces an error for an empty strand but this behavior seems right
to me,
[: At
|domain error: At
| @:a:

Regarding  (u1 (u2 u3)) , (u1 u2 (u3 u4)),


   [: u1 (u2 u3) At
u1@:(u2 u3)

   [: u1 u2 (u3 u4) At
u1@:u2@:(u3 u4)



On Sun, Mar 2, 2014 at 4:20 PM, Dan Bron <j...@bron.us> wrote:
Hey, didn't see this show up on the Forums; I think the jsoftware site or
domain is having trouble recently.

-Dan

Sent from my iPhone

Begin forwarded message:
From: Dan Bron <j...@bron.us>
Date: March 2, 2014 at 3:40:24 PM EST
To: "programm...@jsoftware.com" <programm...@jsoftware.com>
Subject: Re: [Jprogramming] Tacit recursion without $:
I wrote:
the single-hook limitations that have plagued all tools in this vein to
date [3]? What does   [: u1 u2 At   produce?

Rather than "single hook", I should have said "rightmost hook" limitation.
as the problem also applies to (u1 (u2 u3)) , (u1 u2 (u3 u4)), etc as well.

-Dan

Sent from my iPhone

On Mar 2, 2014, at 3:34 PM, Dan Bron <j...@bron.us> wrote:
Awesome! I've wanted something like this (no-middle-man) since 2010 [1],
and the J community has been wanting(train-to-pipeline since at least 2003
[2]. I'm very glad to have these tools and they're going straight in my
toolbox. Thank you.

I think the only last thing we need is some nicer notation for the pattern.
In [2], Paul proposed defining (: ): for this purpose, and that idea has
been raised a few times since (mostly by me :). But, rather than change the
DoJ so drastically, with the advent of Unicode, we should be able to
provide, in userspace, our own custom symbols to denote a verb pipeline
(perhaps guillemets e.g., «u1 u2 u3 u4» as I suggested in [1], but really,
anything from [4] could work). Of course, that would require us to add
support for Unicode identifiers in the language, so I'm glad to see active
discussion of that idea in recent threads (it would be more satisfying and
less risky to change the language to support Unicode than introduce new
punctuation like (:): or (.). etc.)

I haven't had a chance to try out your examples below yet, but did you
manage to work around the single-hook limitations that have plagued all
tools in this vein to date [3]? What does   [: u1 u2 At   produce? If it
doesn't produce u1@:u2 , I have a vague sense that this problem arose in
another context quite recently, and someone posted a solution. Maybe Raul
and/ or Pascal?

-Dan

[1] Adverb for creating verb pipelines from trains, which I couldn't get
working the way I wanted:

http://www.jsoftware.com/pipermail/programming/2010-June/019756.html

[2] Paul Chapman on using '):' to enclose trains and glue the component
verbs together using @:, in order to reduce visual noise in J expressions
(because pipelines are a common pattern and having lots of @: clutters them
up & buries the logic):

http://www.jsoftware.com/pipermail/general/2003-August/015037.html

[3] Paul's script to produce pipelines from trains:

http://www.jsoftware.com/pipermail/general/2003-August/015037.html

[4] Various ways of denoting quotation, e.g. 「u1 u2 u3 u4」:
http://en.m.wikipedia.org/wiki/International_variation_in_quotation_marks
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to