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 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.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
    

Anmelden zum Antworten