Welche Programmiersprachen haben noch eine große Zukunft vor sich, welche gelten als veraltet?
-
!rr!rr_. schrieb:
ich würde sagen, diese Runde code golfen ging an smalltalk, oder schafft es jmd in < 56 Zeichen (+ Filename) ?
(FileStream fileNamed: 'foo.txt') contents asBag sortedElementsNa das kann ich ja nicht auf mir sitzen lassen

h={};IO.read("foo.txt").chars{|i|h[i]||=0;h[i]+=1};h.sort # bzw. h=Hash.new(0);IO.read("foo.txt").chars{|i|h[i]+=1};h.sort
-
ich würde sagen, diese Runde code golfen ging an smalltalk
... oder eine von smalltalk inspirierte Sprache, natürlich

-
Michael E. schrieb:
h={};IO.read("foo.txt").chars{|i|h[i]||=0;h[i]+=1};h.sort # bzw. h=Hash.new(0);IO.read("foo.txt").chars{|i|h[i]+=1};h.sortPS. wo ist'n da die Ausgabe? puts(h.to_s) oder sowas liefert bei mir nur wirre Zeichen
-
Gibts bei dir ne Ausgabe?
-
Wenn ich mich an die Konvention halte, dass Schlüssel und Werte mit Leerzeichen und verschiedene Einträge mit Newlines getrennt werden, komme ich auf
h={};IO.read("foo.txt").chars{|i|h[i]||=0;h[i]+=1};puts h.sort.map{|o|o*" "}
-
na klar: Die Ausgabe, die von der Form
{($A->9). ($B->5). ($C->3). ...($y->14)}ist, erhalte ich wahlweise mit dem Tastendruck ctrl-p oder print-it aus dem Kontextmenü des Ausdrucks, oder programmgesteuert mit
0 logCr: (FileStream fileNamed: 'foo.txt') contents asBag sortedElements(65 Zeichen plus Filename)
-
Bezug:
Michael E. schrieb:
Gibts bei dir ne Ausgabe?
-
es steht jetzt 65:69 zugunsten von smalltalk :xmas2:
-
Die Ausgabe ist ja aber nicht ganz so schön.

Hab grad mal im Python-Forum nachgefragt. Es geht wesentlich eleganter als ich das gemacht hatte. Nämlich so:
import collections as c with open("c:/Dem_lolor_sein_Post.txt","r")as f: print("\n".join("{} {}".format(*t)for t in c.Counter(f.read()).most_common()))
-
61 Zeichen plus Filename:
0logCr:(FileStream fileNamed:'foo.txt')contents asBag sortedElements
-
!rr!rr_. schrieb:
es steht jetzt 65:69 zugunsten von smalltalk :xmas2:
Wir müssen uns schon einigen, ob wir nur eine irgendwie formatierte Ausgabe oder eine Ausgabe mit festem Format wollen. In beiden Fällen liege ich im Moment vorne.
unformatiert:
h={};IO.read("foo.txt").chars{|i|h[i]||=0;h[i]+=1};puts h.sort 0logCr:(FileStream fileNamed:'foo.txt')contents asBag sortedElementsOhne explizite Ausgabe:
(FileStream fileNamed: 'foo.txt') contents asBag sortedElements h={};IO.read("foo.txt").chars{|i|h[i]||=0;h[i]+=1};h.sortFormatiert hast du noch nichts gezeigt.
-
die Aufgabe bestand in alphabetisch sortierter Ausgabe. Ein hash "6fzdt21r8h42k 16z5zghdjzs..." ist keine solche Ausgabe. Mein snippet liefert:
{($A->9). ($B->5). ($C->3). ...($y->14)}Es steht 61Z : 69Z zugunsten smalltalk.
-
Es steht 61Z : 69Z zugunsten smalltalk.
Wie kommst du darauf? Michaels Beispiele sind doch kürzer.
-
!rr!rr_. schrieb:
die Aufgabe bestand in alphabetisch sortierter Ausgabe. Ein hash "6fzdt21r8h42k 16z5zghdjzs..." ist keine solche Ausgabe.
Warum ignorierst du meinen Code? Und wie willst du auf die Ausgabe kommen?
irb(main):106:0> puts h {"d"=>1, "i"=>4, "e"=>11, "s"=>3, " "=>7, "t"=>4, "n"=>2, "\n"=>1, "r"=>4, "g"=>1, "h"=>2, "\xFC"=>1, "b"=>1, "m"=>1, "z"=>1, "l"=>1, "."=>1} => nilNix kryptisch. Und sortiert erhält mans dann, wenn man
sortbenutzt:irb(main):108:0> h={};IO.read("foo.txt").chars{|i|h[i]||=0;h[i]+=1};p h.sort [["\n", 1], [" ", 7], [".", 1], ["b", 1], ["d", 1], ["e", 11], ["g", 1], ["h", 2], ["i", 4], ["l", 1], ["m", 1], ["n", 2], ["r", 4], ["s", 3], ["t", 4], ["z", 1], ["\xFC", 1]] => [["\n", 1], [" ", 7], [".", 1], ["b", 1], ["d", 1], ["e", 11], ["g", 1], ["h", 2], ["i", 4], ["l", 1], ["m", 1], ["n", 2], ["r", 4], ["s", 3], ["t", 4], ["z", 1], ["\xFC", 1]]Das ist kürzer als alles, was du gepostet hast.
-
Befehlsabkürzungen dürfen also verwendet werden, wie ich sehe ...
Prima: mit Befehlsabkürzungen wie deinem "p" schaffe ich es im Workspace von smalltalk mit 40 Zeichen plus Filename:
Fi<tab>fileN<down><down><tab>'foo.txt')co<tab><bkspace><bkspace>asBag sortedElements<ctrl-p>Ausgabe:
{($A->7). ($B->5). ($C->8). [...] ($y->4)}zum Längenvergleich jetzt mit den Abkürzungen T=<tab>, D=<down>, B=<bkspace> P=<ctrl-p> gegenübergestellt:
FiTfileNDDT'foo.txt')coTBBasBag sortedElementsP h={};IO.read("foo.txt").chars{|i|h[i]||=0;h[i]+=1};p h.sort40:52, smalltalk führt mit 12 Zeichen Vorsprung
-
Fi<tab>fileN<down><down><tab>'foo.txt')co<tab><bkspace><bkspace>asBag sortedElements<ctrl-p>
Ist das jetzt dein Ernst?
Oder kann man das etwa als Datei speichern und mittels Smalltalk-Interpreter aufrufen? Dürfte bei der Rubyversion möglich sein.
Die ungeschriebene Regel war doch, nur die Standardbibliothek zu benutzen. p ist Teil davon. Also sei ein Mann und akzeptiere deine Niederlage - sonst machst du dich nur lächerlich.
-
wennn in ruby der Methodenaufruf s.inspect abgekürzt durch "p s" eingegeben werden darf, dann muß ich in meinem workspace auch FileStream abgekürzt durch "Fi<tab>" eingeben dürfen - gleiches Recht für alle :xmas1:
-

Na, wenn du meinst.
-
!rr!rr_. schrieb:
wennn in ruby der Methodenaufruf s.inspect abgekürzt durch "p s" eingegeben werden darf, dann muß ich in meinem workspace auch FileStream abgekürzt durch "Fi<tab>" eingeben dürfen - gleiches Recht für alle :xmas1:
Das ist doch lächerlich.
pist, wie comonad richtig gesagt hat, Teil der Standardbibliothek. Das hat nichts mit Autovervollständigung oder sonst was zu tun. Ansonsten definier ich mir in meiner Arbeitsumgebung den Shortcut Strg+U, der meinen kompletten Code hinschreibt. Hey, ich hab mit einem Zeichen gewonnen
Edit: Mein Gott, vielleicht sollte ich nochmal kurz drüberlesen, was ich schreibe...
-
Ich kenne eine Programmiersprache, mit der kann ich ein Programm schreiben, das kürzer ist als in jeder anderen Sprache. Die Programmiersprache heißt X und der Code sieht so aus:
filename.txtDie Sprache erwartet nur den Namen der Datei, die geparst werden soll, danach erfüllt sie alle geforderten Anforderungen. Ist das nicht toll? Und das beste: Ich hab die Sprache gerade erfunden. Jetzt will ich mal sehen wie ihr das unterbietet.