This could gives you for any given integer the list of prime numbers. source is from a stack overflow snippet.
primes 1 = []
primes n = 2:[i | i <- [3,5..n], and [mod i k /= 0 | k <- primes (isqrt i)]]
my main unclarity is how I should interpret i and k in de mod part. At every step of the recursion.
example: primes 10.
it should generate [2,3,5,7,9] if you ignore the second part.
however, when I look at the second part
then first I need to do this primes (isqrt 10), which give primes 3. which gives met [2,3].
first question) I haven't reached base case in this situations so can i or can i not meaningfully evaluate mod i k /= 0?
Independent of that I now go deeper to reach base case.
So I go to primes (isqrt 3) which gives me primes 1 which is []. Now I hit the base case and need to definitely evaluate mod i k /= 0.
second question) but in this case what is i and what is k?
If I have it completely wrong, then please be patience. I appreciate the input!