Danke. Die erklärungen werden immer besser.
Aber ich geh wetten mein letztes programm hatte min. 20 funktionen. die hälfte jedoch ungenützt. Bestand großteils aus den fahrroutinen usw.
Grüße
Thomas
Druckbare Version
Danke. Die erklärungen werden immer besser.
Aber ich geh wetten mein letztes programm hatte min. 20 funktionen. die hälfte jedoch ungenützt. Bestand großteils aus den fahrroutinen usw.
Grüße
Thomas
Hallo,
kleine Anmerkung zur Diskussion: Bitte nicht den Begriff "funktionale Programmierung" falsch verwenden. Funktionale Programmierung ist ein völlig eigenständiges Programmierkonzept (funktionale Sprachen sind zum Beispiel Haskell, Lisp, Scheme).
Das Gegenteil von objektorientiert ist prozedural, nicht funktional.
Neben den funktionalen Sprachen gibt es die große Gruppe der imperativen Sprachen, zu denen C, C++, Pascal, Basic usw. zu zählen sind. Weiterhin unterscheidet man noch deklarative Sprachen, wie zum Beispiel Prolog.
Die Prozeduren werden in C jedoch Funktionen benannt, soviel ich das mitgekriegt hab. oder?Zitat:
Zitat von zefram
Ja richtig, allerdings hat das damit nichts zu tun. Die Namensgebung ist sicher etwas verwirrend.
Kleine Erklärung: Bei imperativen Sprachen (C, C++, Pascal und alles was du sicher sonst so kennst) schreibt man genau auf, was die CPU tun soll. Man gibt ihr Befehle (daher der Name imperativ, kommt aus dem Latein). Die CPU arbeitet dann genau die Befehle ab, die der Programmierer vorgegeben hat.
Nicht so bei den funktionalen SPrachen wie Haskell. Hier definiere ich das zu lösende Problem als mathematische Funktion (daher der Name). Im Hintergrund kümmert sich jetzt eine Art Interpreter darum, aus meiner mathematischen Anweisung Befehle für die CPU zu erzeugen. Aber ich als Programmierer muß mir darum keine Gedanken machen, ich definiere nur mein mathematisches Problem.
Zur verdeutlichung der Quicksort-Algorithmus in Haskell:
Ein einfacher Zweizeiler. Die erste Zeile sagt nur: Wird Quicksort auf eine leere Liste [] angewendet, ist das Ergebnis eine leere Liste.Code:qsort [] = []
qsort (x:xs) = qsort (filter (< x) xs) ++ [x] ++ qsort (filter (>= x) xs)
Zweite Zeile: Wird Quicksort auf eine Liste von mehreren Zahlen angewendet, von denen die erste x heißt und alle weiteren mit xs bezeichnet werden, dann ist das Ergebnis eine Liste von Zahlen, die so aufgebaut ist:
Links steht das Ergebnis von Quicksort angewendet auf alle Zahlen aus xs, die kleiner sind als x, in der Mitte steht x selbst, rechts steht das Ergebnis von Quicksort angewendet auf alle Zahlen größer als x.
Damit ist der Sortieralgorithmus Quicksort mathematisch exakt definiert. Wie die CPU das jetzt intern ausrechnet, ist mir völlig egal.
In C/C++ oder jeder anderen imperativen Sprache müsste man genau mittels Schleifen, if-Abfragen usw. der CPU sagen, was zu tun ist.
Danke. das schaut ja praktisch aus. jedoch entsteht da sicher ein riesiges compileroutput. doch für komplexe sachen auf jeden fall das beste denn für dieses beispiel hätt ich in c lang gebraucht.
Grüße
Superhirn
und das ausgerechnet mir! Asche auf mein Haupt...Zitat:
Zitat von zefram
Hab's korrigiert
Wenn ihr Anwendungssoftware schreiben wollt benutzt Java, dass ist am elegantesten...
Java is fast dasselbe wie C# *duck*Zitat:
Zitat von ExtreamCoder
Delphi is auch ned übel wenns um schnell was schönes erstellen geht...
Yo, kann nicht schaden... Wenn man erstmal mit OO angefangen hat, lernt man es zu schätzen aber es gibt eigentlich kaum was, das man nicht auch mit reinem C lösen kann. Es wird nur manchmal unübersichtlicher...Zitat:
Zitat von superhirn
Das meiste an Prgrammiersprachen ist subjektiv (ob man mit dem Stil zurechtkommt, ob man irgendwo gelesen hat, dass sie schlecht is (BASIC) usw...). Für die meisten Sachen kann man alle nehmen. Trotzdem gibts immer Glaubenskriege drüber. Bin erstaunt, dass es dazu hier noch nicht kam :) Das spricht für das Niveau hier.
Mit C kann man auf alle Fälle mal nix falsch machen.
Hi,Zitat:
Trotzdem gibts immer Glaubenskriege drüber. Bin erstaunt, dass es dazu hier noch nicht kam. Das spricht für das Niveau hier.
Mit C kann man auf alle Fälle mal nix falsch machen.
ich könnte ja mal sowas beginnen im Umfragenforum :twisted: .
-------------------
und danke für die vielen antworten. ich glaub das wird ein thema, dass auf ewig aktuell sein wird :-)
Ja, am besten so ne Formulierung wie "Ist C schneller als C++?" oder sowas ähnliches ;) Vielleicht noch Linux und Microsoft in einem Satz verwenden und dann schnell ducken und/oder wegrennen ;PZitat:
Zitat von Superhirn