> hope he would reconsider his decision. For me tacit concepts came first
and functional > programming concepts followed as a consequence later on
but I am, somewhat self-> > > confessed, functionally illiterate ( see,
> http://www.jsoftware.com/pipermail/programming/2010-November/021108.html) and 
> I > do not mind being educated, on the contrary, just be gentle
[wink]. Seriously, we are

The correct link is:
http://www.jsoftware.com/pipermail/programming/2009-August/016165.html

On Fri, Feb 22, 2013 at 3:18 PM, Jose Mario Quintana <
[email protected]> wrote:

>
>
> > Something is cooking, stay tuned...
>
> This is it!  First, I would like to thank Eric Iverson for his easy
> approach to deal with the necessary legal hurdles and to Roger Hui for his
> professional assistance and guidance (however, we are entirely to blame for
> any misconceptions in the design of these extensions).  We, at my company,
> have been committed for more than a decade to implementing production
> systems in pure fixed tacit J code (that is, with no pronouns, pro-verbs,
> pro-adverbs, pro-conjunctions, copulas (assignments) or explicit
> definitions).  The code is generated tacitly and to facilitate this process
> we have, over these years, added proprietary extensions to the language.
>
> We are releasing some of these extensions.   The subject of this message
> was "J tacit extensions" but I changed my mind hoping to attract the
> attention of contributors interested in functional programming and
> function-level programming.   Personally, I think it is unfortunate that
> Boyko decided not to participate anymore in the forums and I hope he would
> reconsider his decision.  For me tacit concepts came first and functional
> programming concepts followed as a consequence later on but I am, somewhat
> self-confessed, functionally illiterate ( see,
> http://www.jsoftware.com/pipermail/programming/2010-November/021108.html) and 
> I do not mind being educated, on the contrary, just be gentle
> [wink].  Seriously, we are interested in how those concepts could enhance,
> and be implemented in the context (and mostly in the context) of, J.  We
> welcome comments and feedback on these extensions and further suggestions
> for future extensions.
>
> The four extensions released are:
>
> 0.  Scope for recursion (foreign adverb 103!:0 )
> The motivation, quoting from "tacit verbs to calculate the number of
> angels dancing on the head of a pin" (
> http://www.jsoftware.com/pipermail/general/2005-February/020757.html ),
> is:
> "On the one hand, recursion is awesomely powerful... On the other hand,
> while $: allows for recursive fixed definitions (as the above-mentioned
> definition), these definitions are not themselves fixable... I have been
> dreaming for a long time of a magic
> self-reference [($:)] scope adverb."
>
> Example use,
>
>    o=. @:
>    x=. @[
>    y=. @]
>
>    rs=. 103!:0
>
>    fact=. 1:`(* $: o <:)@.(1 < ])
>
>    comb=. fact f. rs y % (fact f. rs o -)~ * fact f. rs x
>    3 (! -: comb) 7
> 1
>    comb
> 1:`(* $:@:<:)@.(1 < ]) (103!:0)@] % 1:`(* $:@:<:)@.(1 < ]) (103!:0)@:-~ *
> 1:`(* $:@:<:)@.(1 < ]) (103!:0)@[
>
>    comb=. (fact y % (fact o -)~ * fact x)f.
>    3 (! -: comb) 7
> 1
>    comb
> 1:`(* $:@:<:)@.(1 < ]) (103!:0)@] % 1:`(* $:@:<:)@.(1 < ]) (103!:0)@:-~ *
> 1:`(* $:@:<:)@.(1 < ]) (103!:0)@[
>
> 1. Word from linear (i.e., character list a.k.a. string)) execution
> (foreign adverb 104!:1)
> This adverb provides functionality related to do (“.), evoke (~), to Dan’s
> (ae) adverb and verb (dont).
>
> Example use,
>
>    wl=. 104!:1
>
>    '0+1'wl
> 1
>    '!@#'wl
> !@#
>    '"2'wl
> "2
>    '@.'wl
> @.
>    '(v=. ^&*)'wl
> ^&*
>    v
> ^&*
>    'v'wl
> ^&*
>    '=.'wl
> |syntax error: wl
> |   =.
>
> 2.  (c a) train
> Restoring the decommissioned train,
> u (c a) v  ↔   u c v a
>
> This train is worthy on its own right but my main motivation to restore it
> was to allow the construction of tacit conjunctions from corresponding
> tacit adverbs.  Although adverbs are as powerful as conjunctions, preaching
> to the converted, notation is crucial and conjunctions simplify it
> (otherwise, imagine the notation for v0 @: v1 @: v2 @: v3 @: v4).
>
> Example use,(see,
> http://www.jsoftware.com/jwiki/Community/Conference2012/Talks and
> http://www.2bestsystems.com/j/J_Conference_2012.rtf )
>
>    (u`v) ((`((<'^:'),<(,'0');_)) (@.0 2 1 2 3))
> u^:v^:_
>
>    w=. `((`((<'^:'),<(,'0');_)) (@.0 2 1 2 3))
>    u w v
> u^:v^:_
>
> 3.  (a v)
> Experimental train suggested by Viktor Cerovski in "Atop u at v with v of
> negative monadic rank"
> ( http://www.jsoftware.com/pipermail/programming/2010-November/021108.html),
>
>   (a v) y ↔   (  v y) a y
> x (a v) y ↔ x (x v y) a y
>
> Example use (see,
> http://www.jsoftware.com/pipermail/general/2001-January/005192.html ),
>
>    (u")v NB. x ((u")v) y ↔ x u"(x v y) y
> (u") v
>
>    1 ((<@]")[) i.2 3 4
> ┌───────────┬───────────┬───────────┐
> │0 1 2 3    │4 5 6 7    │8 9 10 11  │
> ├───────────┼───────────┼───────────┤
> │12 13 14 15│16 17 18 19│20 21 22 23│
> └───────────┴───────────┴───────────┘
>    2 ((<@]")[) i.2 3 4
> ┌─────────┬───────────┐
> │0 1  2  3│12 13 14 15│
> │4 5  6  7│16 17 18 19│
> │8 9 10 11│20 21 22 23│
> └─────────┴───────────┘
>
>    (u L:)v NB. x ((u L:)v) y ↔ x u L:(x v y) y
> (u L:) v
>
> The patches for the extensions can be found as follows:
>
> 0, 1 at
> http://www.2bestsystems.com/foundation/j/recursive-scope-word-from-linear.patch
> 2 at http://www.2bestsystems.com/foundation/j/conj-adverb-train.patch
> 3 at http://www.2bestsystems.com/foundation/j/adverb-verb-train.patch
>
> Thought experiments are useful but "the description is not the described,"
> by providing the means to build a concrete extended J, members of the forum
> could "trust but verify."  We hope that Dan, Raul, Viktor, Henry, Marshall
> and many more forum members interested in tacit and functional programming
> (you know who you are) could try and test them.   These extensions are not
> empowered; a new or resurrected train is a train but the adverb (wl) could
> be empowered as a verb (capable of retuning verbs adverbs and conjunctions)
> and as such supersede Dan’s (dont).
>
> The source code patches are licensed, as they are, under GNU GPL,
> accepting no responsibility whatsoever, etc.  However, we encourage your
> feedback; please direct any comments and suggestions regarding the code of
> the patches to Thomas and he will consider them (time permitting).
>
> Pepe
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to