Studie zeigt C als beliebteste Sprache in offenen Projekten
-
u-ser_l schrieb:
ich formulier's mal um, damit es dem Lisp-Beispiel ähnlicher wird:
(1 to: 10) inject: 0 into: [ :s :i | s + i ]. (1 to: 10) collect: [ :i ].
was ist daran kryptisch ? Das ist schön und elegant.
das ist verdammt schön und elegant. ich hatte mich deshalb damals auch sofort in smalltalk verliebt.
-
u-ser_l schrieb:
(1 to: 10) inject: 0 into: [ :s :i | s + i ]. (1 to: 10) collect: [ :i ].
was ist daran kryptisch ?
So gut wie fast alles.
-
u-ser_l schrieb:
außerdem ist es in Smalltalk kürzer:
(loop for i from 1 to 10 sum i) (loop for i from 1 to 10 collect i) => 18 Wörter (1 to: 10) inject: 0 into: [ :s :i | s + i ]. (1 to: 10) collect: [ :i ]. => 16 Wörter
die wörter zu zählen, würde ich mal nicht als maß nehmen. ich finde zum beispiel die syntax von Visual Basic in den OOP-sachen schöner als die von C++. da schreibt man alles sehr langatmig aus und kommt auf sehr sehr viele wörter. trotzdem fließt es mir aus den fingern und ich lese es wie einen roman, während bei C++ sowohl beim schreiben als auch beim lesen oft ein ruckeln zu verzeichnen ist.
-
volkard schrieb:
das ist verdammt schön und elegant. ich hatte mich deshalb damals auch sofort in smalltalk verliebt.
nanu ?
-
u-ser_l schrieb:
volkard schrieb:
das ist verdammt schön und elegant. ich hatte mich deshalb damals auch sofort in smalltalk verliebt.
nanu ?
versteh mich nicht falsch. ich liebe smalltalk nicht. ich mag es nichtmal wirklich. wir haben uns auseinandergelebt, sagt man da wohl. ich mag heute C++, aber ich hasse die syntax von C++. ist wohl sowas wie mit einer klugen toleranten fürsorglichen schönen ehefrau, die stinkefüße hat; Inschallah.
-
Nimm Python.
-
u-ser_l schrieb:
(loop for i from 1 to 10 sum i) (loop for i from 1 to 10 collect i) => 18 Wörter (1 to: 10) inject: 0 into: [ :s :i | s + i ]. (1 to: 10) collect: [ :i ]. => 16 Wörter
aber die ausgabe fehlt oder?
// scala, mit ausgabe List.range(1,11).foreach(print) // ausgabe: 12345678910 print (List.range(1,11).foldRight(0)(_+_)) // ausgabe: 55
-
;fricky schrieb:
u-ser_l schrieb:
(loop for i from 1 to 10 sum i) (loop for i from 1 to 10 collect i) => 18 Wörter (1 to: 10) inject: 0 into: [ :s :i | s + i ]. (1 to: 10) collect: [ :i ]. => 16 Wörter
aber die ausgabe fehlt oder?
// scala, mit ausgabe List.range(1,11).foreach(print) // ausgabe: 12345678910 print (List.range(1,11).foldRight(0)(_+_)) // ausgabe: 55
Und du meinst C++ wäre kryptisch??
-
1:10 sum (1:10)
-
C++-Progger, Der wahre schrieb:
Und du meinst C++ wäre kryptisch??
naja, *räusper*, zugegeben, das aufsummieren sieht schlimm aus. aber so geht's auch noch:
print (Array.range(1, 11).reduceLeft(_+_)) // ausgabe: 55
Tim schrieb:
1:10 sum (1:10)
auch ohne ausgabe, ne? welche sprache?
-
noch was zum raten: wo geht das
sum of 1 to 10
^^ausgabe 55. kein scherz, geht wirklich.
-
40 Zeichen und mit Ausgabe
seq 10;seq -s ' ' 10|dc -e '?+++++++++p' 1 2 3 4 5 6 7 8 9 10 55
-
;fricky schrieb:
Tim schrieb:
1:10 sum (1:10)
auch ohne ausgabe, ne? welche sprache?
Matlab, und das gibt aus wenn kein Semikolon am Ende.
-
Rekord
1+2+...+10 mit 5 Zeichen APL:
+/[i]i[/i]10
oder mit 6 Zeichen in der Sprache J:
+/i.11
-
kann es jemand mit 4 Zeichen ?
-
Irgendwie am Thema vorbei, mir ging es eigentlich um die Implementierung von DSLs innerhalb einer Sprache und nicht darum wer den Kleinsten hat.
-
u-ser_l schrieb:
kann es jemand mit 4 Zeichen ?
Wenn du Sprachen in der Art von HQ9+ zulässt, mach ich es dir mit 0 bis 1 Zeichen.
-
ist Forth genügend DSL-fähig ? Denke schon.
11 1 DO I . LOOP 0 11 1 DO I + LOOP .
-
\newcount\s\s=0\newcount\n\n=1\loop\number\n\ \advance\s by\n\advance\n by1\ifnum\n<10\repeat\number\s\end 1 2 3 4 5 6 7 8 9 10 55
-
sum [1..10]
In Haskell (ist auch nur ein modernes Lisp)! Auch ist es nicht schlimm wie in der Lispversion mehr Woerter zu nutzen. Nennt sich literate programming. Die Smalltalkversion wird dem nicht gerecht.