Did you try this in jqt?  I got actual hearts, clubs, spaded and diamonds.

They didn't look good in the  email.

I haven't yet considered your info, but thanks in advance.

Linda

-----Original Message-----
From: Programming <programming-boun...@forums.jsoftware.com> On Behalf Of David 
Lambert
Sent: Wednesday, October 10, 2018 2:39 PM
To: programming <programm...@jsoftware.com>
Subject: Re: [Jprogramming] Using rank to avoid looping - reference?

https://eur02.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.jsoftware.com%2Fhelp%2Fdictionary%2Fd502.htm&amp;data=02%7C01%7C%7C8962f1c7bbd64c7f887c08d62edf973f%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636747935176847563&amp;sdata=NVpMe0KN%2FlbJ9TWTF20I4IqBqP3ykgQGOBvNxQO%2FvSw%3D&amp;reserved=0

Cap as the left tine of a fork does, as you suggest, make the middle verb work 
as a monad.  Every other time cap is invoked as a verb it signals an error.


Now let's get this right: (footnote *2)

A  B   C  D    E  F G  H      I        J K  L  M  N  O  P  Q
[: <"2 [: |."2 ] {~ [: /:~"1 ([: |. [) $ [: ?~ [: */ [: |. [

If fixed width font not available:

A [:
B <"2
C [:
D |."2
E ]
F {~
G [:
H /:~"1
I ([:|.[)
J $
K [:
L ?~
M [:
N */
O [:
P |.
Q [


The train begins with cap.  We hope the train is a fork because as an hook cap 
A would be called as the left verb of an hook, which would raise an error.   A 
through Q inclusively are 17 verbs, an odd number, thus the train is overall a 
fork.  We know that verb B is the monad "box at rank 2" rather than "less than 
applied in a clever way".  To me, box at rank 2 on the left means "make the 
display pretty".

Now let's work from right to left, working in groups of, I'll call it condensed 
3, because j treats the right most 3 verbs of a train as a fork and as if it 
were parenthesized as a single verb.

OPQ: a fork
Q is a dyad (when two arguments are supplied to the train, which they are).  
Since it is rightmost on the train Q gets the arguments to the train.
P is a monad because cap O blocks the left hand argument.

MN(OPQ)
N is a monad because of cap M.
N, formed from two words, is the single verb "insert multiply"
N is "insert multiply", and not "product table" because of the cap M.
N inserts multiply into the result of executing OPQ.
Since multiplication commutes, the reversal P isn't useful.
M does not raise an error.  It is the left hand tine of a fork.

KL(MN(OPQ))
K caps L
L is a monad meaning "shuffle the integers i. y"
L is formed from two words, verb and adverb, and the monadic definition of ~ is 
reflex which evaluates ? as y deal y .

Review:
K though Q deal a deck having size the product of the left hand vector.

IJ(K-Q)
I is a fork evaluated as a dyad.  And being the left-hand tine of a fork it 
receives the original arguments to the entire train.  Fork I does the same 
thing as OPQ, reversing the left hand vector x .
J, evaluated as a dyad, reshapes the deck.  Additionally we know that the 
product of the shape is the same size as the deck.  All the numbers are used 
exactly one time.

GH(I-Q)
H, although called as a monad, invokes dyadic sort due to reflexive adverb ~ .  
The sorting takes place at rank 1 because the conjunction tells me so.  Off 
track, /:"1~ ought to perform faster than /:~"1 because reflex applies just 
once.

EF(G-Q)
E is a dyad, the left tine of a fork, given the original arguments to the train.
F evaluates as the dyad "from".  The adverb in F is the dyadic form, passive, 
which swaps the arguments.  The result of the G-Q train is an index vector into 
the list on the right side of the train, its y argument.

Review:
We've now learned much.  E through Q essentially operates like x $ y , with 
some sort of randomization of y .  There's a new constraint that there must be 
enough items in y, at least as many as the product of the shape vector x.  And 
for some still mysterious reason the shape vector is reversed.

CD(E-Q)
D reverses the items, but is fed the rank 2 chunks.  This leads us to a second 
proposal.  Could the sort H be changed to descending sort and removing CD?  H 
could be \:"1~ .


Test using fixed seed deal:

    f =: [: <"2 [: |."2 ] {~ [: /:~"1 ([: |. [) $ [: ?.~ [: */ [: |. [

    g =: [: <"2         ] {~ [: \:"1~ ([: |. [) $ [: ?.~ [: */       [

    (13,*:2) (f-:g) deck
1



To which I'd apply the "left hook"* and express the algorithm as

    h =: [: <"2 ({~ [: \:"1~ |. $ [: ?.~ */)~

    (13,*:2) (h-:g)deck
1



    f
[: <"2 [: |."2 ] {~ [: /:~"1 ([: |. [) $ [: ?~ [: */ [: |. [
    g
[: <"2 ] {~ [: \:"1~ ([: |. [) $ [: ?~ [: */ [
    h
[: <"2 ({~ ([: \:"1~ |. $ [: ?~ */))~


    F=:52$'23456789TJQKA'
    S=:(13#'cdhs')
    deck=:S,.F

    (13,*:2) h deck
┌──┬──┬──┬──┐
│sK│sA│sJ│hQ│
│s4│sQ│sT│h8│
│hA│s8│s9│h6│
│hT│s6│s7│h4│
│h2│s5│s3│h3│
│dT│hK│s2│dA│
│d5│hJ│h9│dK│
│d4│h7│h5│dQ│
│d2│dJ│d8│d7│
│cQ│d9│d6│c9│
│cT│cA│d3│c8│
│c3│cK│cJ│c7│
│c2│c6│c5│c4│
└──┴──┴──┴──┘

The result are neatly sorted bridge hands.  Thank you!


* As I see it, sentences with "same" may as well be explicit code. Hooks can 
eliminate many cases of ][ .
*2 Set up for errors!


On 10/10/2018 08:00 AM, programming-requ...@forums.jsoftware.com wrote:
> Date: Wed, 10 Oct 2018 02:07:38 +0000
> From: Linda Alvord<lindaalvor...@outlook.com> 
> To:"programm...@jsoftware.com"  <programm...@jsoftware.com>
> Subject: Re: [Jprogramming] Using rank to avoid looping - reference?
> Message-ID:
>       
> <bn6pr06mb3137aef292e3fd9416c94ee9b5...@bn6pr06mb3137.namprd06.prod.ou
> tlook.com>
>       
> Content-Type: text/plain; charset="utf-8"
>
> Some of these patterns are making it seasier for me to translate from tacit 
> to explicit.
>
>     F=:52$'23456789TJQKA'     
>     S=:(13#5 4 3 6){a.
>     deck=:S,.F
>        
>     shuf=: 13 :'<"2|."2 y {~ /:~"1 (|.x)$?~*/|.x'
>     shuf
> [: <"2 [: |."2 ] {~ [: /:~"1 ([: |. [) $ [: ?~ [: */ [: |. [
>        
>     ;:'[: <"2 [: |."2 ] {~ [: /:~"1 ([: |. [) $ [: ?~ [: */ [: |. ['
> ┌──┬─┬─┬─┬──┬──┬─┬─┬─┬─┬─┬──┬──┬─┬─┬─┬─┬──┬──┬─┬─┬─┬──┬─┬─┬──┬─┬─┬──┬─
> ─┬─┐ 
> │[:│<│"│2│[:│|.│"│2│]│{│~│[:│/:│~│"│1│(│[:│|.│[│)│$│[:│?│~│[:│*│/│[:│|
> .│[│ 
> └──┴─┴─┴─┴──┴──┴─┴─┴─┴─┴─┴──┴──┴─┴─┴─┴─┴──┴──┴─┴─┴─┴──┴─┴─┴──┴─┴─┴──┴──┴─┘
>     13 4 shuf deck
> ┌──┬──┬──┬──┐
> │A│T│K│6│
> │Q│5│J│4│
> │3│J│9│A│
> │2│7│8│4│
> │Q│6│7│T│
> │9│2│K│9│
> │8│A│T│4│
> │5│K│Q│2│
> │3│J│3│A│
> │8│J│Q│K│
> │7│T│7│9│
> │6│8│5│4│
> │5│6│2│3│
> └──┴──┴──┴──┘
>     NB. right to left: [: |. and [: <"2 are monadic
>     NB.                [: * / , [:?~ , [:/:~ are dy adic
>     NB.                $ and {~ are dyadic
>             
>     Linda
>     


----------------------------------------------------------------------
For information about J forums see 
https://eur02.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.jsoftware.com%2Fforums.htm&amp;data=02%7C01%7C%7C8962f1c7bbd64c7f887c08d62edf973f%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636747935176847563&amp;sdata=0eXAc5N2wG%2FdeTcIeurbm3FHPWgqqTlACnWBNhCA%2BP8%3D&amp;reserved=0
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to