Ok, I misinterpreted this enormously (I was just focused on the Haslell
expression you started with). It would be nice if you could illustrate
your last mail with an example in Haskell (but that's specifically for me).
You started with the Haskell expression
[ f x | x <- xs ]
and described that as follows
which means
"the list of all f x
such that x is drawn from xs."
But in my opion it is more like:
Apply function f on all x element of the list xs and of course f can be
a very complex expression. As I said before this is often expressed with
the higher order function map.
Jon Hough schreef op 27-12-14 om 16:01:
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
--
Met vriendelijke groet,
@@i = Arie Groeneveld
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm