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