|
|
var odd = Enumerable.Range(1, 10).Where(num => num%2 != 0);
foreach (var i in odd)
Console.WriteLine(i);
|
|
|
Mich würde interessieren wie es hier mit der Performance im Vergleich zur klassischen Schleife aussieht.
– Vash 16.09.2009
|
for( $i=1;$i<11;$i+=2 )
{
print $i;
}
|
|
a) filter odd [1..10]
b) [s | s <- [1..10], odd s]
|
|
/**
+++++[->++++++++++<]>-<
+++[->>++++++++++<<]>>++
<<-----[+>.>.<++<]
*/
|
|
function fn1($value) {
if(bcmod($value,2) != 0) {
printf("%s\r\n",$value);
}
$value++;
if($value < 10) fn1($value);
}fn1(1);
|
|
| 1 |
Rekursivität impliziert keine Eleganz. Und von elegant ist das hier weit entfernt. ;-)
– Tomalak 08.09.2009
|
|
|
Tante Wiki sagt: Eleganz (Adjektiv: elegant) bezeichnet den Ausdruck von besonderem Stil und Geschmack in Design, Architektur, Mode, Kunst, aber auch Musik, Sprache. Sie stellt ein ästhetisches Konzept und Ideal dar, das an Schönheit und Grazie (z. B. beim Tanz) orientiert ist.
und ich finde rekursion total sexy :) – MiW 08.09.2009
|
||
|
Nun ja, wie gesagt, bloß weil es rekursiv ist, wird es nicht elegant. Genau wie ein Badezimmer nicht elegant wird, bloß weil goldene Armaturen eingebaut wurden - auch wenn man die toll findet. ;-)
– Tomalak 08.09.2009
|
||
| 2 |
Zudem bedeutet Rekursivität in vielen Fällen ein Leistungsverlust, weil jeder Funktionsaufruf an den Ressourcen nagt. Nun stelle man sich diese Lösung hier vor, wenn der bereich nicht 1-10, sonder 1-10k ist.
Also 10k Funktionsaufrufe für eine Simple Aufgabe hören sich für mich nach nen totalen Overhead an.^^ – Flyingmana 08.09.2009
|
for (var i = 0; i < 5; i++) alert(2 * i + 1)
|
|
PERFORM VARYING I FROM 1 BY 2 UNTIL I > 10
DISPLAY I
END-PERFORM
PERFORM VARYING I FROM 1 BY 1 UNTIL I > 10
DIVIDE I BY 2 GIVING E REMAINDER R
IF R = 1
DISPLAY I
END-IF
END-PERFORM
|
|
|
|
<script type="text/javascript">
for (var i = 1; i <= 10; i++){
if(i%2 != 0)
alert(i);
}
</script>
|
|
print x
| x `mod` 2 == 1 = print (x-1) ++ (x) <-(da gehören eigentlich eckige klammern hin)
| otherwise = print (x-1)
print 0 = () <-(da gehören eigentlich eckige klammern hin)
|
|
08.09.2009
|
for(i=1;i<10; i++)
{
i = ((i>>1)<<1) + 1; // Wehe der Compiler optimiert das Shiften weg :D
printf("%d\n",i);
}
|
|
Hierbei suche ich die eleganteste Lösung. Die Programmiersprache ist egal!
# Ausgabe Bedingung Liste
# -------+-----------+----------
print grep $_ % 2, 1 .. 10
print grep $_ % 2, -10 .. 10
-9 -7 -5 -3 -1 1 3 5 7 9
|
|
array_walk(
array_filter(
array_keys(array_fill(1, 10, 0)),
create_function('$_','return$_&1;')
),
create_function('$_','echo$_;')
);
map print,
grep $_&1,
1 .. 10
1 3 5 7 9
|
|
Mein Favorit
http://99-bottles-of-beer.net/language-perl-737.html
für "99 bottles of beer"
LOL