I was not advocating eliminating tie - I just wanted to understand how these variations related to something useful.
Thanks, -- Raul On Fri, Jan 6, 2017 at 7:51 PM, 'Pascal Jasmin' via Programming <programm...@jsoftware.com> wrote: > justification is pretty soft but > > - knot + tie (- knot 3) 1 : ' ''`f g'' =. m label_. f,g ' > > is one way to get at each gerund. Each might be variable. > > > Stitching modifiers to verbs (where each side can be length 1 or length of > other) is one application, but I don't use this method, so remaining > justifications are pretty esoteric, though one common one is that f or g > would be used as parameter to another function that takes verb or gerund. > The more esoteric application is variable (number of)/default parameters > within groups. > > The case for tie is that it should be possible to encapsulate a gerund, and > bracketing a group is a pretty easy way to make it happen, and hard to do > accidentally. The case against it is that it is already pretty easy. > > > +`- ar > > ----- Original Message ----- > From: Raul Miller <rauldmil...@gmail.com> > To: Programming forum <programm...@jsoftware.com> > Sent: Friday, January 6, 2017 6:31 PM > Subject: Re: [Jprogramming] fixed tacit produces an error when reassigned > > Neither of these represents a valid train (valid u for `:6), though. > Which may or may not be important to you. > > Anyways, it might be more interesting to identify a context where one > of them is valid? > > Thanks, > > -- > Raul > > > > > On Fri, Jan 6, 2017 at 1:39 PM, 'Pascal Jasmin' via Programming > <programm...@jsoftware.com> wrote: >> tie differs from knot in the following: >> >> - knot + tie (- knot 3) >> ┌─────────┬─────────────┐ >> │┌─┬─────┐│┌─┬─────────┐│ >> ││0│┌─┬─┐│││0│┌─┬─────┐││ >> ││ ││-│+││││ ││-│┌─┬─┐│││ >> ││ │└─┴─┘│││ ││ ││0│3││││ >> │└─┴─────┘││ ││ │└─┴─┘│││ >> │ ││ │└─┴─────┘││ >> │ │└─┴─────────┘│ >> └─────────┴─────────────┘ >> >> >> >> - knot + knot (- knot 3) >> ┌─┬─┬─┬─────┐ >> │-│+│-│┌─┬─┐│ >> │ │ │ ││0│3││ >> │ │ │ │└─┴─┘│ >> └─┴─┴─┴─────┘ >> >> >> (- knot + knot (- knot 3)) -: - knot + tie - tie 3 >> 1 >> >> tie allows combining gerunds into 2 if trying to (useful for stitching >> togeter gerund terms for example). Though arguably a separate function >> could do that too, and there's reason to prefer the simplicity of your >> function. >> >> >> >> >> ----- Original Message ----- >> From: Raul Miller <rauldmil...@gmail.com> >> To: Programming forum <programm...@jsoftware.com> >> Sent: Friday, January 6, 2017 12:13 PM >> Subject: Re: [Jprogramming] fixed tacit produces an error when reassigned >> >> Here's an explicit treatement for knot: >> >> testgerund=:3 :0 >> y 5!:0 >> 1 >> ) >> isgerund=:3 :0 ::0: >> testgerund"0 y >> 1 >> ) >> arg=: 1 : 0 >> if. 0=4!:0<'u' do. >> if. isgerund m do. m return. end. >> end. >> 5!:1 <'u' >> ) >> knot=: 2 :'u arg ` (v arg)' >> >> -- >> Raul >> >> >> On Fri, Jan 6, 2017 at 11:27 AM, Jose Mario Quintana >> <jose.mario.quint...@gmail.com> wrote: >>> Pascal wrote: >>> >>> "seems like there is a need for a new primitive say `.. (tie below)" >>> >>> The Jx primitive `. (knot) does the following: >>> >>> >>> 1`.+ >>> ┌─────┬─┐ >>> │┌─┬─┐│+│ >>> ││0│1││ │ >>> │└─┴─┘│ │ >>> └─────┴─┘ >>> +/`.1 2 3 4 >>> ┌───────┬───────────┐ >>> │┌─┬───┐│┌─┬───────┐│ >>> ││/│┌─┐│││0│1 2 3 4││ >>> ││ ││+│││└─┴───────┘│ >>> ││ │└─┘││ │ >>> │└─┴───┘│ │ >>> └───────┴───────────┘ >>> +/`.1 2 3 4 `:6 >>> 10 >>> >>> See [0] and references there in. >>> >>> [0] [Jprogramming] J Extensions, Jose Mario Quintana >>> http://www.jsoftware.com/pipermail/programming/2014-March/036377.html >>> >>> >>> On Thu, Jan 5, 2017 at 8:53 PM, 'Pascal Jasmin' via Programming < >>> programm...@jsoftware.com> wrote: >>> >>>> there is always the ugliness that lr spits out >>>> >>>> lr (1 ar)`+ >>>> (<(,'0');1),<,'+' >>>> >>>> (but parenthesized in case it is bound to modifier) >>>> >>>> > One solution would be to make an exception for noun ARs, i. e. those >>>> beginning with (<'0'). Those could be left in boxed form, rather than >>>> converted back to their value, when they appear as operands to (`). >>>> >>>> >>>> This sounds promising, so >>>> >>>> (<(,'0');1)`+ >>>> >>>> seems like there is a need for a new primitive say `.. (tie below) >>>> >>>> >>>> ar =: 1 : '5!:1 <''u''' >>>> isNoun_z_ =: (0 = 4!:0 ( :: 0:))@:< >>>> isgerund =: 0:`(0 -.@e. 3 : ('y (5!:0)';'1')"0)@.(0 < L.) :: 0: >>>> isgerundA =: 1 : ' if. isNoun ''u'' do. isgerund m else. 0 end.' >>>> tie =: 2 : 'if. u isgerundA do. if. v isgerundA do. m ar , v ar else. m , >>>> v ar end. else. if. v isgerundA do. u ar , n else. u ar , v ar end. end. ' >>>> >>>> so the above could be displayed (lr) and input as >>>> >>>> 1`..+ >>>> >>>> but >>>> >>>> >>>> (<(,'0');1)`+ >>>> >>>> wouldn't break anything since its a valid lr that creates the valid >>>> gerund. I can't imagine anyone was relying on buggy lr output that doesn't >>>> convert back to ar form. >>>> >>>> >>>> >>>> >>>> ----- Original Message ----- >>>> From: Henry Rich <henryhr...@gmail.com> >>>> To: programm...@jsoftware.com >>>> Sent: Thursday, January 5, 2017 8:20 PM >>>> Subject: Re: [Jprogramming] fixed tacit produces an error when reassigned >>>> >>>> I understand this problem a little better now. >>>> >>>> The trouble would be something like >>>> >>>> v0`v1`n2`v3 >>>> >>>> where the n2 is a user-created AR. How should you convert this back to >>>> linear rep? >>>> >>>> There are no fingerprints to indicate that a gerund was created by (`) >>>> turning a verb into an AR. So when the LR is generated, any AR that is >>>> an operand to (`) is assumed to have been created by (`). >>>> >>>> One solution would be to make an exception for noun ARs, i. e. those >>>> beginning with (<'0'). Those could be left in boxed form, rather than >>>> converted back to their value, when they appear as operands to (`). >>>> >>>> Would that change break anything? >>>> >>>> Henry Rich >>>> >>>> >>>> >>>> On 1/3/2017 9:37 PM, Henry Rich wrote: >>>> > Operands to modifiers such as m}, ^:n, m`, and `n are flagged if they >>>> > are recognized as gerunds. >>>> > >>>> > This seems to me to be a mistake for m` and `n: they should not be >>>> > flagged until the derived adverb has been executed. The problem you >>>> > report is that m/n are interpreted as if they had come from converting >>>> > a noun to an AR, rather than as a noun in themselves. >>>> > >>>> > But Roger said it was an error in 5!:5. When Roger diagnoses a >>>> > problem differently from me, I assume I am wrong. I'll have to go >>>> > think about it. >>>> > >>>> > In the meantime, you can consider whether there would be a problem >>>> > with delaying the recognition of m` and `n until the derived verb is >>>> > executed. >>>> > >>>> > Henry Rich >>>> > >>>> > >>>> > >>>> > On 1/3/2017 11:18 AM, Jose Mario Quintana wrote: >>>> >> Sorry, I pressed the wrong button and my previous message was >>>> >> incomplete; >>>> >> this should have been the full message: >>>> >> >>>> >> I am afraid it is the superbug that has been discovered and >>>> >> rediscovered a >>>> >> few times; see [0, 1, 2 and 3]. >>>> >> >>>> >> References >>>> >> >>>> >> [0] [Jprogramming] Table of Verbs, Jose Mario Quintana >>>> >> http://www.jsoftware.com/pipermail/programming/2013-April/032358.html >>>> >> >>>> >> [1] [Jprogramming] tacit adverb, Dan Bron >>>> >> http://www.jsoftware.com/pipermail/programming/2012-February >>>> /027341.html >>>> >> >>>> >> [2] [Jgeneral] Looks like a bug in "., Dan Bron >>>> >> http://www.jsoftware.com/pipermail/general/2009-August/033231.html >>>> >> >>>> >> [3] [Jprogramming] Linear Representation Bug?, Roger Hui >>>> >> http://www.jsoftware.com/pipermail/programming/2009-August/016011.html >>>> >> >>>> >> >>>> >> On Tue, Jan 3, 2017 at 11:09 AM, Jose Mario Quintana < >>>> >> jose.mario.quint...@gmail.com> wrote: >>>> >> >>>> >>> I am afraid it is the superbug that has been discovered and >>>> >>> rediscovered a >>>> >>> few times; see [0, 1, 2 and 3]. >>>> >>> >>>> >>> >>>> >>> References >>>> >>> >>>> >>> [0] [Jprogramming] Table of Verbs, Jose Mario Quintana >>>> >>> http://www.jsoftware.com/pipermail/programming/2013-April/032358.html >>>> >>> >>>> >>> [1] [Jprogramming] tacit adverb, Dan Bron >>>> >>> http://www.jsoftware.com/pipermail/programming/2012-February >>>> >>> /027341.html >>>> >>> >>>> >>> [2] [Jgeneral] Looks like a bug in "., Dan Bron >>>> >>> http://www.jsoftware.com/pipermail/general/2009-August/033231.html >>>> >>> >>>> >>> >>>> >>> On Tue, Jan 3, 2017 at 10:12 AM, 'Pascal Jasmin' via Programming < >>>> >>> programm...@jsoftware.com> wrote: >>>> >>> >>>> >>>> This file works j804 and j805, when copied and run with F8, you may >>>> >>>> need >>>> >>>> to fix newlines >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> NB.--------------------------------------------------------- >>>> >>>> ------------------- >>>> >>>> NB. Wicked Tacit Toolkit... >>>> >>>> NB.--------------------------------------------------------- >>>> >>>> ------------------- >>>> >>>> >>>> >>>> NB. Load it using 0!:0 or similar or >>>> >>>> NB. paste it on an J editing window and use Crtl-A Crtl-E or >>>> >>>> NB. of course, load it using a hot key (or replace '=.' by '=:' if you >>>> >>>> must) >>>> >>>> >>>> >>>> NB. A word is a noun, verb, adverb or conjunction >>>> >>>> >>>> >>>> >>>> >>>> (_ o=. @:) (c=. "_) (e=. &.>) (x=. @:[) (y=. @]) >>>> >>>> >>>> >>>> an=. <@:((,'0') ,&< ]) NB. Atomizing words (monadic verb) >>>> >>>> >>>> >>>> Cloak=. (0:`)(,^:) NB. Cloaking (the atomic >>>> >>>> representaions >>>> >>>> of) >>>> >>>> NB. adverbs or conjunctions as monadic or >>>> >>>> NB. dyadic verbs (adv) >>>> >>>> Cloak=. ((5!:1)@:<'Cloak')Cloak NB. Cloak verbing itself! (monadic >>>> >>>> ver) >>>> >>>> >>>> >>>> 'amper at evoke fix rank tie'=. Cloak o < e o ;: '& @: `: f. " `' >>>> >>>> NB. Verbing some adverbs and conjunctions >>>> >>>> >>>> >>>> train=. (evoke&6) :. an f. NB. (`:6) with a convinient obverse >>>> >>>> NB. (monadic verb) >>>> >>>> box=. (< o train "0) f. NB. Boxing primitives and pro-words >>>> >>>> NB. (monadic verb) >>>> >>>> >>>> >>>> af=. an o fix >>>> >>>> >>>> >>>> (a0=. `'') (a1=. (@:[) ((<'&')`) (`:6)) (a2=. (`(<(":0);_)) (`:6)) >>>> >>>> av=. ((af'a0')`) (`(af'a1')) (`(af'a2') ) (`:6) >>>> >>>> NB. Adverbing a monadic verb (adv) >>>> >>>> assert 1 4 9 -: 1 2 3 *: adv >>>> >>>> >>>> >>>> aw=. < o ((0;1;0)&{::) NB. Fetching the atomic representation >>>> >>>> >>>> >>>> u (a3=. (o (train o aw f.)) ('av'f.)) (a4=. "_) >>>> >>>> >>>> >>>> adv=. train o ((af'a4') ; ] ; (af'a3')"_) f.av >>>> >>>> assert 1 4 9 -: 1 2 3 *: adv >>>> >>>> assert 6 -: * (,^:(0:`(<'/'))) adv 1 2 3 >>>> >>>> assert 0 1 3 -: (*:`(+/\)) (train f. o (0&{ , (<'-') , 1&{)) adv 1 2 3 >>>> >>>> >>>> >>>> a3=. (o (aw f.)) ('av'f.) >>>> >>>> >>>> >>>> Adv=. (train f. @:) (train o ((af'a4') ; ] ; (af'a3')"_) f.av) >>>> >>>> assert 1 4 9 -: 1 2 3 ((<'*:') ; ] ) Adv >>>> >>>> assert 6 -: * (< , ((<'/')"_)) Adv 1 >>>> >>>> 2 3 >>>> >>>> assert 0 1 3 -: (*:`(+/\)) (0&{ , (<'-') , 1&{)@:(('';1)&{::) Adv 1 >>>> >>>> 2 3 >>>> >>>> >>>> >>>> Ver=. Cloak o af f. NB. Verbing after fixing a pro-adverb or >>>> >>>> pro-conjunction >>>> >>>> NB. (monadic verb) >>>> >>>> ver=. Cloak o an f. NB. Verbing after fixing an adverb or conjunction >>>> >>>> NB. (monadic verb) >>>> >>>> >>>> >>>> NB. Defining cv in terms of itself... >>>> >>>> cv=. ((rank&_) o < o train)f.adv (>@:) NB. First version >>>> >>>> cv=. (train f. cv at (<x rank _ c)) f.adv NB. Constant verb >>>> >>>> u ( cv=. ( >cv at (<x rank _ c)) f.adv ) >>>> >>>> NB. Constant word (adv) >>>> >>>> NB. (cv is to words as c is to nouns) >>>> >>>> assert (CRLF cv _) -: CRLF >>>> >>>> assert (u cv _) <adv -: u <adv >>>> >>>> assert (!@# cv _) <adv -: !@# <adv >>>> >>>> assert (< o ((Ver'cv') o train <'/') _) -: ( < o train (<'/')) >>>> >>>> assert (< o ((Ver'cv') o train <'"') _) -: ( < o train (<'"')) >>>> >>>> >>>> >>>> >>>> >>>> NB. Fetch and From... >>>> >>>> pointers=. (<: o - o i.)`i. @.(0<]) >>>> >>>> >>>> >>>> Fetch=. (] amper {:: cv)e o pointers f.adv NB. Verbs mnemonics >>>> >>>> pointers >>>> >>>> NB. (e.g., ( 'u0 u1 u2 u3'=. 4 Fetch ) j ( 'v0 v1 v2 v3'=. _4 Fetch >>>> >>>> ) ) >>>> >>>> >>>> >>>> assert (< o train 3 Fetch) -: ( 0&({::) 1&({::) 2&({::)) (< adv) >>>> >>>> assert (< o train _3 Fetch) -: (_3&({::) _2&({::) _1&({::)) (< adv) >>>> >>>> >>>> >>>> From=. (] amper { cv)e o pointers f.adv NB. Verbs mnemonics >>>> >>>> pointers >>>> >>>> NB. From=. (] ([ amper train y)(({ `'')c))e o i. f. adv >>>> >>>> NB. (e.g., ( 'u0 u1 u2 u3'=. 4 From ) j ( 'v0 v1 v2 v3'=. _4 From ) ) >>>> >>>> >>>> >>>> assert (< o train 3 From ) -: ( 0&{ 1&{ 2&{ ) (<adv) >>>> >>>> assert (< o train _3 From ) -: (_3&{ _2&{ _1&{ ) (<adv) >>>> >>>> >>>> >>>> Left=. (at [cv)e f.adv >>>> >>>> Right=. (at ]cv)e f.adv >>>> >>>> >>>> >>>> mRS=. (`'') (<&.:train f.av) (`,)(`]) (`:6) (train f. @: >>>> >>>> )(&:(an f.)) >>>> >>>> NB. Monadic recursion scope >>>> >>>> assert (1 + (1:`(* $:@<:)@.*) mRS 4) -: 25 NB. Factorial >>>> >>>> fixed >>>> >>>> dRS=. (`'') (<&.:train f.av) (`,) (`]) (,`) ([`) (`:6) (train f. @: >>>> >>>> )(&:(an f.)) >>>> >>>> NB. Dyadic recursion scope >>>> >>>> assert (3 (1 + (1:`(%~ * $:&:<:)@.(*@:[))dRS) 7) -: 36 NB. >>>> >>>> Binomial fixed >>>> >>>> >>>> >>>> >>>> >>>> mRS is properly assigned and works as intended from file, >>>> >>>> >>>> >>>> >>>> >>>> mRS >>>> >>>> ((((((`'')(((`'')(&(<&.:(,^:(0:``:)&6 :.(<@:((,'0') ,&< >>>> >>>> ])))@:[)))((`_)(`:6))))(`,))(`]))(`:6))(,^:(0:``:)&6 :.(<@:((,'0') >>>> ,&< >>>> >>>> ]))@:))(&:(<@:((,'0') ,&< ]))) >>>> >>>> >>>> >>>> but trying to to assign it to this linear representation produces a >>>> >>>> syntax error >>>> >>>> >>>> >>>> mRS =: ((((((`'')(((`'')(&(<&.:(,^:(0:``:)&6 :.(<@:((,'0') ,&< >>>> >>>> ])))@:[)))((`_)(`:6))))(`,))(`]))(`:6))(,^:(0:``:)&6 :.(<@:((,'0') >>>> ,&< >>>> >>>> ]))@:))(&:(<@:((,'0') ,&< ]))) >>>> >>>> |syntax error >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> is this a bug in linear representation? is it directly assignable? >>>> >>>> ------------------------------------------------------------ >>>> ---------- >>>> >>>> For information about J forums see http://www.jsoftware.com/forum >>>> s.htm > >> >>>> >>>> >>> >>>> >>> >>>> >> ---------------------------------------------------------------------- >>>> >> For information about J forums see http://www.jsoftware.com/forums.htm >>>> > >>>> > ---------------------------------------------------------------------- >>>> > For information about J forums see http://www.jsoftware.com/forums.htm >>>> >>>> ---------------------------------------------------------------------- >>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>> ---------------------------------------------------------------------- >>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>> >>> ---------------------------------------------------------------------- >>> For information about J forums see http://www.jsoftware.com/forums.htm >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm