Welche Programmiersprachen haben noch eine große Zukunft vor sich, welche gelten als veraltet?
-
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.sort
PS. 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 sortedElements
Ohne explizite Ausgabe:
(FileStream fileNamed: 'foo.txt') contents asBag sortedElements h={};IO.read("foo.txt").chars{|i|h[i]||=0;h[i]+=1};h.sort
Formatiert 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} => nil
Nix kryptisch. Und sortiert erhält mans dann, wenn man
sort
benutzt: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.sort
40: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.
p
ist, 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 gewonnenEdit: 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.txt
Die 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.
-
Antoras schrieb:
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.txt
Die 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.
Das ist keine Sprache, das ist eine Beschäftigung für Arbeitslose.
Edit: :xmas1:
-
Antoras schrieb:
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.txt
[...] Jetzt will ich mal sehen wie ihr das unterbietet.
Das ist leicht. Ich präpariere ein smalltalk Image mit:
Number compile: 'x (FileStream fileNamed:''foo.txt'')contents asBag sortedElements printOn: Transcript. Transcript flush.'.
In diesem neuen Dialekt läßt sich die Buchstabenverteilung mit dem folgenden 2-Zeichen-Befehl ausgeben:
0x