If I understand properly, the Haskell concept of "such that" is roughly analogous to the J concept of verb rank (which is a built in property of all J verbs).
If this is the case, maybe what you want is already there? Thanks, -- Raul On Sat, Dec 27, 2014 at 10:01 AM, Jon Hough <jgho...@outlook.com> wrote: > 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 ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm