Lucky and even lucky numbers: Difference between revisions

Content added Content deleted
(Haskell example using laziness. This example uses regular expressions and data types.)
Line 137: Line 137:


range :: Int -> Int -> Lucky -> [Int]
range :: Int -> Int -> Lucky -> [Int]
range x x' l = case l of
range x x2 l = case l of
Lucky -> let n = length (take x (luckyNumbers oddNumbers)) in
Lucky -> let n = length (take x (luckyNumbers oddNumbers)) in
drop (n-1) (take x' (luckyNumbers oddNumbers))
drop (n-1) (take x2 (luckyNumbers oddNumbers))
EvenLucky -> let n = length (take x (luckyNumbers evenNumbers)) in
EvenLucky -> let n = length (take x (luckyNumbers evenNumbers)) in
drop (n-1) (take x' (luckyNumbers evenNumbers))
drop (n-1) (take x2 (luckyNumbers evenNumbers))


interval :: Int -> Int -> Lucky -> [Int]
interval :: Int -> Int -> Lucky -> [Int]
interval x x' l = let x'' = (-1 * x') in
interval x x2 l = let x'' = (-1 * x2) in
case l of
case l of
Lucky -> let n = length (takeWhile (<x) (luckyNumbers oddNumbers)) in
Lucky -> let n = length (takeWhile (<x) (luckyNumbers oddNumbers)) in
Line 211: Line 211:
$ luckyNumbers 1 -100 evenLucky
$ luckyNumbers 1 -100 evenLucky
[2,4,6,10,12,18,20,22,26,34,36,42,44,50,52,54,58,68,70,76,84,90,98]</pre>
[2,4,6,10,12,18,20,22,26,34,36,42,44,50,52,54,58,68,70,76,84,90,98]</pre>

=={{header|J}}==
=={{header|J}}==