Hi Aai,

I'm sorry, we may be talking past each other. You are correct abut list 
comprehensions, but I am interested in being able to get a "such that" idea in 
J, to make translating math definitions {A | B} (A such that B) into computable 
J.

This isn't to make anything computationally faster or anytihng like that, it's 
for the ease of the human to understand what the conditions for creating a set 
(or list or array ) is.

As a simple example, the group C4 (cyclic group on 4 letters) is
0 1 2 3
1 2 3 0
2 3 0 1
3 0 1 2
(where each row is a permutation)
This group can be defined (in standard math notation, not J) as

< x | order(x) == 4>
where angle brackets replace curly brackets to denote "generated by". That is, 
we get the set of permutations generated by a permutation of order 4.

I'm sure there are several ways to get this set in J, but the one I am 
interested in needs some sort of "such that" clause to keep it as close as 
possible to the mathematical notation.

So I can do:



x =: (sym 4) where (4&=@:order)This gives a set of permutations from Sym 4 that 
have order 4. I just want one.
generatorList =: 2 4 $ ((i. 4) , {. x)
I take the head of the list and append the identity permutation to it and then 
use
generate generatorList
which should give me the Cyclic group on 4 letters.(where "generate" is the 
verb m35 found here http://www.jsoftware.com/phrases/permutations.htm )
This actually works well I think, because it gives a flexible way to change the 
conditional clause and create different sets, groups.




> Date: Sat, 27 Dec 2014 15:44:10 +0100
> From: agroeneveld...@gmail.com
> To: programm...@jsoftware.com
> Subject: Re: [Jprogramming] "Such that" syntax in J
> 
> Hello John,
> 
> just interpreting what you mean (but I may misunderstand it completely). 
> With a list comprehension you can formulate:
> (just a simple example)
> 
> Prelude> take 6 $ [ (^2) x | x <- [0..], 0 == x `mod` 2]
> [0,4,16,36,64,100]
> 
> In J:
> 
>     (*:#~0=2&|) i.12
> 0 4 16 36 64 100
> 
> Perhaps something like this?
> 
> 
> Jon Hough schreef op 27-12-14 om 15:26:
> > Hi Aai,
> >
> > I see what you are saying, but I would say that implicitly inside f there 
> > is some sort of "such that" syntax.
> > My motivation for asking for a "such that / where" construct is to create 
> > computable math definitions, as in Haskell.
> >
> > for example, if I want the set (or group):
> >
> > { x e. Sym(4) | order(x) = 4} (where Sym(4) is the symmetric group on 4 
> > letters)
> >
> > then, assuming I have a verb "sym" and a verb "order" I can do
> >
> >
> > (sym 4) where (4&=@:order)
> > Then it may just be possible to generate groups from group presentations ( 
> > http://en.wikipedia.org/wiki/Presentation_of_a_group)(I haven't figured out 
> > how to do this, I am just thinking about it over the holidays)
> >
> >> Date: Sat, 27 Dec 2014 08:46:12 +0100
> >> From: agroeneveld...@gmail.com
> >> To: programm...@jsoftware.com
> >> Subject: Re: [Jprogramming] "Such that" syntax in J
> >>
> >> Sorry for jumping in late.
> >>
> >> The Haskell expression you showed here is called a list comprehansion
> >> which can be easily formulated as
> >>
> >> map f xs
> >>
> >> and this is in J simply:
> >>
> >> f xs
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >> Jon Hough schreef op 26-12-14 om 17:04:
> >>> In Haskell (and other languages I'm sure) one can express the idea of 
> >>> "such that" to denote one expression depending on another. In Haskell we 
> >>> can use the syntax:
> >>>
> >>> [ f x | x <- xs ]
> >>>
> >>> which means
> >>>    "the list of all f x
> >>> such that x is drawn from xs."
> >>>
> >>> So | is syntactically similar to the English "such that". (and very much 
> >>> like | in mathematical sets)
> >>>
> >>> I would like to know if J has a construct to express the above Haskell 
> >>> code.
> >>>
> >>> Thanks,
> >>> Jon.
> >>>                                           
> >>> ----------------------------------------------------------------------
> >>> For information about J forums see http://www.jsoftware.com/forums.htm
> >> -- 
> >> Met vriendelijke groet,
> >> @@i = Arie Groeneveld
> >>
> >> ----------------------------------------------------------------------
> >> For information about J forums see http://www.jsoftware.com/forums.htm
> >                                     
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> 
> -- 
> Met vriendelijke groet,
> @@i = Arie Groeneveld
> 
> ----------------------------------------------------------------------
> 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