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