Studie zeigt C als beliebteste Sprache in offenen Projekten
-
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.
-
knivil schrieb:
Nennt sich literate programming.
Der arme Knuth.
-
u-ser_l schrieb:
ist Forth genügend DSL-fähig ? Denke schon.
11 1 DO I . LOOP 0 11 1 DO I + LOOP .
Kann ich nicht beurteilen, dazu müsstest du schon noch ein Beispiel dazulegen wie es aussehen würde, wenn du Forth nutzt und keine in Forth implementierte DSL.
Bei Common Lisp wäre eine Lisp-Variante:
(let ((sum 0)) (dotimes (i 10) (incf sum (1+ i))) (print sum)) (let ((numbers nil)) (dotimes (i 10) (push (1+ i) numbers)) (print (nreverse numbers)))
Egal wie man es macht, die loop-Varianten versteht jeder sofort ohne nachzudenken.
-
LISPer schrieb:
u-ser_l schrieb:
ist Forth genügend DSL-fähig ? Denke schon.
11 1 DO I . LOOP 0 11 1 DO I + LOOP .
Kann ich nicht beurteilen, dazu müsstest du schon noch ein Beispiel dazulegen wie es aussehen würde, wenn du Forth nutzt und keine in Forth implementierte DSL.
Bei Common Lisp wäre eine Lisp-Variante:
(let ((sum 0)) (dotimes (i 10) (incf sum (1+ i))) (print sum)) (let ((numbers nil)) (dotimes (i 10) (push (1+ i) numbers)) (print (nreverse numbers)))
Egal wie man es macht, die loop-Varianten versteht jeder sofort ohne nachzudenken.
Der letze Satz bezieht sich auf Common Lisp.
-
LISPer schrieb:
dazu müsstest du schon noch ein Beispiel dazulegen wie es aussehen würde, wenn du Forth nutzt und keine in Forth implementierte DSL.
das ist Forth und keine DSL
11 1 DO I . LOOP 0 11 1 DO I + LOOP .
-
aber wenn Dir das nicht kryptisch genug ist - kein Problem:
: {{ 1 ; : }= 11 ; : #?@ I . ; : !&x DO ; : +*-u LOOP ; }= {{ !&x #?@ +*-u