Population count: Difference between revisions

Content added Content deleted
m (BASIC256 moved to the BASIC section.)
(Add Miranda)
Line 2,827:
Odious: (1 2 4 7 8 11 13 14 16 19 21 22 25 26 28 31 32 35 37 38 41 42 44 47 49 50 52 55 56 59)
</pre>
 
=={{header|Miranda}}==
<syntaxhighlight lang="miranda">main :: [sys_message]
main = [Stdout (lay (map (show . take 30) [powers_of_3, evil, odious]))]
 
powers_of_3 :: [num]
powers_of_3 = map (popcount . (3^)) [0..]
 
evil :: [num]
evil = filter f [0..] where f n = popcount n mod 2 = 0
 
odious :: [num]
odious = filter f [0..] where f n = popcount n mod 2 = 1
 
popcount :: num -> num
popcount 0 = 0
popcount n = n mod 2 + popcount (n div 2)</syntaxhighlight>
{{out}}
<pre>[1,2,2,4,3,6,6,5,6,8,9,13,10,11,14,15,11,14,14,17,17,20,19,22,16,18,24,30,25,25]
[0,3,5,6,9,10,12,15,17,18,20,23,24,27,29,30,33,34,36,39,40,43,45,46,48,51,53,54,57,58]
[1,2,4,7,8,11,13,14,16,19,21,22,25,26,28,31,32,35,37,38,41,42,44,47,49,50,52,55,56,59]</pre>
 
=={{header|Nim}}==