Hi Bo,

As I said, producing a tacit version is tricky!  :)

Regarding my request, I complicated things by asking a question related to
your verb called 'simplify' which you mentioned in an old thread (see [0]
in my message).  Anyway, I will try to pose my question later in the
original thread within the right context.





On Wed, Jul 13, 2016 at 4:05 PM, 'Bo Jacoby' via Programming <
[email protected]> wrote:

> Hi Jose!
> I cannot comment on your tacit version of 13 : 'x H. y 2' because I do not
> understand it, but it is nice that it exists.
> Nor do I understand your request to generalize from vector to matrix.
> The problem solved was this. A student performing a multiple choice test
> knew  x  answers and guessed the remaining  n-x  answers correctly with
> probability 50% and incorrectly with probability 50%. So he provided  y
>  correct and  n-y  incorrect answers. The task is to estimate the unknown
> number  x  from the known numbers  n  and  y .
> I got help here:
> https://en.wikipedia.org/wiki/User_talk:Joel_B._Lewis#Analyzing_the_multiple_choice_test
>
> The troublesome sums were expressed in terms of hypergeometric functions.
> Raul Miller helped me with the J code.
>    H2=.4 :'x H.y 2'
>    ms=.[:(([:<:{.),:[:%:{.*([:+:{:)-[:>:{.)2%~/\(1 2
> 3,&>/[:-[)H2"1[:-1e_7+]
>    5j1":|:(10+i.11) ([,ms) 20
>  10.0 2.7 2.1
>  11.0 3.5 2.5
>  12.0 4.6 2.8
>  13.0 5.9 3.0
>  14.0 7.4 3.2
>  15.0 9.2 3.2
>  16.0 11.0 3.1
>  17.0 13.0 2.8
>  18.0 15.0 2.4
>  19.0 17.0 2.0
>  20.0 19.0 1.4
>  How do you want to extend this to matrices?
> Thanks. Bo.
>
>     Den 19:20 onsdag den 13. juli 2016 skrev Jose Mario Quintana <
> [email protected]>:
>
>
>
>  Hi Bo,
>
> In principle, any explicit verb can be rewritten tacitly.  In practice,
> sometimes this can be very difficult if one adheres to the Dictionary
> rules; however, with some familiarity it is usually easy as long as one is
> willing to bend the rules (and expressions such as  13 :'x H. y 2'  can
> even be translated automatically with the right tool).  I provided an
> embedded hand-coded tacit form of H2 in my reply (search below for the
> entry 'Mnt=.'  and compare it to the entry 'Mn=.') using a wicked tacit
> toolkit.  An alternative stand-alone tacit version of H2 follows, (mind
> you, it is long vs its explicit counterpart),
>
> h2=. ,^:(0:`(<'`:'))&6@:([,(<'H.'),(<2;~":0),~])&:(<@:((":0) ; ]))
>
> While I have your attention, I hope, I would like to ask you a question
> regarding your simplify verb [0]:  Do you have a similar verb when instead
> of having a univariate sample (vector) one has a multivariate sample
> (matrix)?  I would be interested to see a version even if it is restricted
> to matching just the first two moments (the mean and variance-covariance of
> the sample).
>
>
> [0]  [Jprogramming] simplify
>       http://www.jsoftware.com/pipermail/programming/2015-June/042130.html
>
> On Tue, Jul 12, 2016 at 1:09 AM, 'Bo Jacoby' via Programming <
> [email protected]> wrote:
>
> >
> > Hi Jose!
> > Thank you for your interest in my program.
> > I do not know if there exists a tacit version of  (13 :'x H. y 2')  .
> > I do not share your allergy against
> > [:-1e_7+] NB. 10 characters
> > as opposed to
> > -@:(1e_7+]) NB. 12 characters
> >
> > Normally I would prefer the shorter version.
> > Bo.    Den 1:32 tirsdag den 12. juli 2016 skrev Jose Mario Quintana <
> > [email protected]>:
> >
> >
> >
> >  Your version would be a neat tacit rewriting of ms, except that you
> > defined
> > H2 explicitly.  The hybrid nature of ms, written this way, is apparent
> when
> > one tries to fix it,
> >
> >  ms f.
> > [: (([: <: {.) ,: [: %: {. * ([: +: {:) - [: >: {.) 2 %~/\ (1 2 3 ,&>/
> [: -
> > [) 4 : '(x H.y)2'"1 [: - 9.9999999999999995e_8 + ]
> >
> > Personally, I am allergic to forks with leading caps; but finding a
> remedy
> > a remedy is easy,
> >
> >  ms=. (<:@:{. ,: %:@:({. * +:@:{: - >:@:{.))@:(2 %~/\ (1 2 3 ,&>/ -@:[)
> > H2"1 -@:(1e_7 + ]))
> >
> > Either way, the tricky part is to rewrite H2 tacitly.
> >
> >
> >
> >
> > On Mon, Jul 11, 2016 at 3:46 AM, 'Bo Jacoby' via Programming <
> > [email protected]> wrote:
> > H2=.4 :'(x H.y)2'
> >  ms=.[:(([:<:{.),:[:%:{.*([:+:{:)-[:>:{.) 2%~/\(1 2
> 3,&>/[:-[)H2"1[:-1e_7+]
> >  6 6j2 6j2 ":|:7 8 9 10 ([,ms) 10
> >  7 3.73 1.96
> >  8 5.25 2.05
> >  9 7.05 1.87
> >  10 9.01 1.39
> >
> >
> >    Den 21:58 søndag den 10. juli 2016 skrev Jose Mario Quintana <
> > [email protected]>:
> >
> >
> >
> >  Exercise 8.  Rewrite the verb explicit verb ms shown below tacitly, as
> > usual, bonus points for a fixed tacit version (see the message [0]).
> >
> > Mn=: 13 :'y H.(-x+1e_7)2'"1
> > M=:  13 :'|:y Mn 1 2 3,&>/-i.1+y'
> > ms=. 13 : '(<:a),:%:a*(+:b)->:a[''a b''=.|:2%~/\"1 M y'
> > 3":(i.@>:,ms) 10
> >
> > A (wicked) solution follows after the warning.
> >
> > [0]  [Jprogramming] Using the hypergeometric adverb (H.).
> >    http://www.jsoftware.com/pipermail/programming/2016-July/045466.html
> >
> >
> >
> >
> >  _|_|_|                      _|  _|
> > _|        _|_|_|      _|_|        _|    _|_|    _|  _|_|
> >  _|_|    _|    _|  _|    _|  _|  _|  _|_|_|_|  _|_|
> >      _|  _|    _|  _|    _|  _|  _|  _|        _|
> > _|_|_|    _|_|_|      _|_|    _|  _|    _|_|_|  _|    _|  _|  _|
> >          _|
> >          _|
> >
> >
> >
> >
> > The following is a slightly edited session:
> >
> >  JVERSION
> > Engine: j805/j64/windows
> > Beta-9: commercial/2016-07-05T15:45:22
> > Library: 8.04.15
> > Qt IDE: 1.4.10/5.4.2
> > Platform: Win 64
> > Installer: J804 install
> > InstallPath: j:/program files/j
> > Contact: www.jsoftware.com
> >
> > First, the explicit version,
> >
> >  Mn=: 13 :'y H.(-x+1e_7)2'"1
> >  M=:  13 :'|:y Mn 1 2 3,&>/-i.1+y'
> >  ms=. 13 : '(<:a),:%:a*(+:b)->:a[''a b''=.|:2%~/\"1 M y'
> >  3":(i.@>:,ms) 10
> >  0  1  2  3  4  5  6  7  8  9 10
> >  0  0  0  1  1  2  3  4  5  7  9
> >  0  0  1  1  1  1  2  2  2  2  1
> >
> > Next, the tacit (fixed) version.
> >
> > Running the J Wicket Toolkit (see the trailing message),
> >
> >  (0!:0)<'/.../j wicked toolkit.ijs'
> >
> > which is need it to define Mnt,
> >
> >  Mnt=. (] train@:((an 2) ;~ Cloak <'H.')f. (-@:(1e_7 + [)))"1
> >
> >  Mt=. |:@:(Mnt 1 2 3 ,&>/ -@:i.@:>:)
> >
> >  mst=. (<:@:[ ,: %:@:([ * +:@:] - >:@:[))/@:|:@:(2 %~/\"1 Mt f.)
> >
> >
> >
> >
> >
> >  3":(i.@>:,mst) 10
> >
> >  0  1  2  3  4  5  6  7  8  9 10
> >
> >  0  0  0  1  1  2  3  4  5  7  9
> >
> >  0  0  1  1  1  1  2  2  2  2  1
> >
> >
> >
> >  NB. It is fixed...
> >
> >  66 (-@:[ ]\ 5!:5@<@:]) 'mst'
> >
> > (<:@:[ ,: %:@:([ * +:@:] - >:@:[))/@:|:@:(2 %~/\"1 |:@:(((] ,^:(0:
> >
> > ``:)&6 :.(<@:((,'0') ,&< ]))@:((<(,'0');2) ;~ ,^:(0:`H.)) -@:(9.99
> >
> > 99999999999995e_8 + [))"1) (1 2 3 ,&>/ -@:i.@:>:)))
> >
> >
> >
> >  (3":(i.@>:,ms) 100) -: (3":(i.@>:,mst) 100)
> >
> > 1
> >
> >
> > On Fri, Dec 18, 2015 at 7:33 PM, Jose Mario Quintana <
> > [email protected]> wrote:
> >
> > > Dan wrote:
> > >
> > > At some point we’re going to have to put our heads together and create
> a
> > > JAL addon to collect all these utilities.
> > >
> > > "So much to do, so little time."  However, my current writing style
> might
> > > be perceived by many as nasty.  A sample follows together with an
> updated
> > > Wicked Tacit Toolkit (WTT) that must be pre-loaded.
> > >
> > > WARNING: The following is not for the faint-hearted :)
> > >
> > >
> >
> >
> http://www.collinsdictionary.com/dictionary/english/not-for-the-faint-hearted
> > >
> > > Fetch, From, Left and Right are among some added adverbs to the WTT
> which
> > > I find useful.  What do they do?
> > >
> > > From produces a related list of boxed verbs,
> > >
> > >    3  From
> > > +-----------+
> > > ¦0&{¦1&{¦2&{¦
> > > +-----------+
> > >    _5 From
> > > +------------------------+
> > > ¦_5&{¦_4&{¦_3&{¦_2&{¦_1&{¦
> > > +------------------------+
> > >
> > > Similiarly,
> > >
> > >    _3 Fetch
> > > +--------------------------+
> > > ¦_3&({::)¦_2&({::)¦_1&({::)¦
> > > +--------------------------+
> > >    5 Fetch
> > > +---------------------------------------+
> > > ¦0&({::)¦1&({::)¦2&({::)¦3&({::)¦4&({::)¦
> > > +---------------------------------------+
> > >
> > > Left and Right select arguments accordingly,
> > >
> > >    2  Fetch Right
> > > +---------------------+
> > > ¦0&({::)@:]¦1&({::)@:]¦
> > > +---------------------+
> > >    _3 From Left
> > > +-----------------------+
> > > ¦_3&{@:[¦_2&{@:[¦_1&{@:[¦
> > > +-----------------------+
> > >
> > > When can they be useful?
> > >
> > > This is an illustration (rewriting sf1 adverb in the original thread),
> > >
> > >    'V0 V1 V2'  =. 3 Fetch Right
> > >    fg=. (0;1)&{:: NB. Fetching the gerund
> > >    sf1=. ((;:'@{}') train o ((V0 at [cv) ; V1 ; (V2 at ]cv))&:box fg) o
> > > tie&'' f.adv
> > >
> > >    _66 ]\ (5!:5)@< 'sf1'
> > > ("_)(((`'')(&(((;:'@{}') ,^:(0:``:)&6 :.(<@:((,'0') ,&< ]))@:((0&(
> > > {::)@:] ,^:(0:`@:) >@:((<[)"_)) ; 1&({::)@:] ; 2&({::)@:] ,^:(0:`@
> > > :) >@:((<])"_))&:(<@:(,^:(0:``:)&6 :.(<@:((,'0') ,&< ])))"0) (0;1)
> > > &({::))@:(,^:(0:``))&''@:(,^:(0:``:)&6 :.(<@:((,'0') ,&< ]))@:(<@:
> > > ((0;1;0)&({::))))@:[)))((`_)(`:6)))
> > >
> > >    NB. Testing...
> > >
> > >        (v0 v1 v2)sf1
> > > v0@:[ v1 v2@:]
> > > +----------------------+
> > > ¦+-------+¦v1¦+-------+¦
> > > ¦¦v0¦@:¦[¦¦  ¦¦v2¦@:¦]¦¦
> > > ¦+-------+¦  ¦+-------+¦
> > > +----------------------+
> > >
> > >    3 4 (+: +  -:)sf1  2 4
> > > 7 10
> > >
> > > This is another version that might look a little less unfamiliar,
> > >
> > >    NB. Defining the darkhorse...
> > >
> > >    'ATOP LEFT RIGHT'=. 3 From Left
> > >    'V0  V1  V2'  =. 3 From Right
> > >
> > >    fg=. (0;1)&{:: NB. Fetching the gerund
> > >    workhorse=. (;:'@[]') (V0 , ATOP , LEFT , V1 , V2 , ATOP , RIGHT c)
> fg
> > >    darkhorse=. train o workhorse o tie&''
> > >
> > >    NB. Defining the adverb...
> > >
> > >    sf1=. darkhorse f.adv
> > >
> > >    _66 ]\ (5!:5)@< 'sf1'
> > > ("_)(((`'')(&(,^:(0:``:)&6 :.(<@:((,'0') ,&< ]))@:((;:'@[]') (0&{@
> > > :] , 0&{@:[ , 1&{@:[ , 1&{@:] , 2&{@:] , 0&{@:[ , 2&{@:["_) (0;1)&
> > > ({::))@:(,^:(0:``))&''@:(,^:(0:``:)&6 :.(<@:((,'0') ,&< ]))@:(<@:(
> > > (0;1;0)&({::))))@:[)))((`_)(`:6)))
> > >
> > >    NB. Testing...
> > >
> > >        (v0 v1 v2)sf1
> > > v0@[ v1 v2@]
> > > +--------------------+
> > > ¦+------+¦v1¦+------+¦
> > > ¦¦v0¦@¦[¦¦  ¦¦v2¦@¦]¦¦
> > > ¦+------+¦  ¦+------+¦
> > > +--------------------+
> > >
> > >    3 4 (+: +  -:)sf1  2 4
> > > 7 10
> > >
> > >
> > > The updated WTT follows (as always, beware of wrapping lines),
> > >
> > >
> > > 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 representations 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 convenient 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
> > >
> > >
> > > On Tue, Dec 15, 2015 at 6:47 PM, Dan Bron <[email protected]> wrote:
> > >
> > >> > Against my best judgement :), a purist version of Adv follows,
> > >> > assert 1 4 9 -: 1 2 3 *: av
> > >>
> > >> That’s so cool :)
> > >>
> > >> At some point we’re going to have to put our heads together and
> create a
> > >> JAL addon to collect all these utilities.
> > >>
> > >> Named F^4, of course.
> > >>
> > >> -Dan
> > >> ----------------------------------------------------------------------
> > >> 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

Reply via email to