Funktionale Programmierung ist ein Programmierparadigma, das darauf basiert, Abstraktionen mithilfe von Funktionen zu erstellen, Nebenwirkungen und Zustandsänderungen zu vermeiden. Reine Funktionsprogrammierung ist threadsicher.
In seinem Vortrag Simple Made Easy spricht Rick Hickey über " Polymorphism a la carte " (ca. 30:00 im Video). Im gleichen Zusammenhang erwähnt er auch Haskells Typklassen und Clojures Multi-Methoden (und Protokolle). Da ich mit diesen Konzepten nicht sehr vertraut bin, möchte ich ihre Nützlichkeit verstehen, wenn ich versuche, …
In meinem zweiten Studienjahr wurde uns Haskell "beigebracht", ich weiß fast nichts darüber und noch weniger über funktionale Programmierung. Was ist funktionale Programmierung, warum und / oder wo möchte ich sie anstelle von nicht funktionaler Programmierung verwenden und bin ich zu Recht der Meinung, dass C eine nicht funktionale Programmiersprache …
Ich bin ein Scala-Programmierer und lerne jetzt Haskell. Es ist einfach, praktische Anwendungsfälle und Beispiele aus der Praxis für OO-Konzepte wie Dekorateure, Strategiemuster usw. zu finden. Bücher und Interwebs sind damit gefüllt. Mir wurde klar, dass dies bei funktionalen Konzepten irgendwie nicht der Fall ist. Ein typisches Beispiel: Antragsteller . …
Ich bin mit den Konzepten von Monaden und Pfeilen, wie sie in der funktionalen Programmierung verwendet werden, weitgehend vertraut . Ich verstehe auch, dass sie verwendet werden können, um ähnliche Probleme zu lösen. Ich bin jedoch immer noch etwas verwirrt darüber, wie ich auswählen soll, welches in einer bestimmten Situation …
Geschlossen . Diese Frage basiert auf Meinungen . Derzeit werden keine Antworten akzeptiert. Möchten Sie diese Frage verbessern? Aktualisieren Sie die Frage, damit sie mit Fakten und Zitaten beantwortet werden kann, indem Sie diesen Beitrag bearbeiten . Geschlossen vor 7 Jahren . Verbessere diese Frage Wann möchten Sie KEINE funktionale …
Nach meinem Verständnis sind Teilfunktionen Funktionen, die wir erhalten, wenn wir weniger Parameter an eine Funktion übergeben als erwartet. Wenn dies beispielsweise in Python direkt gültig wäre: >>> def add(x,y): ... return x+y ... >>> new_function = add(1) >>> new_function(2) 3 Im obigen Snippet new_functionist eine Teilfunktion. Laut Haskell Wiki …
Ich arbeite derzeit an einem einfachen Interpreter für eine Programmiersprache und habe einen Datentyp wie diesen: data Expr = Variable String | Number Int | Add [Expr] | Sub Expr Expr Und ich habe viele Funktionen, die einfache Dinge tun wie: -- Substitute a value for a variable substituteName :: …
Mir scheint, dass Sie immer Funktionsargumente übergeben können, anstatt eine Typklasse zu verwenden. Zum Beispiel, anstatt eine Gleichheitstypklasse zu definieren: class Eq a where (==) :: a -> a -> Bool Die Verwendung in anderen Funktionen zur Angabe des Typarguments muss eine Instanz von Eq: elem :: (Eq a) => …
Diese Frage ist eine theoretische Frage zu Haskell-Funktionen, die Argumente jeglicher Art annehmen können. Gibt es einen Unterschied zwischen der Funktionsweise mit den Typensignaturen von a -> b -> a und c -> a -> c instanziiert werden? Jede Hilfe wird geschätzt.
Viele Arten von Optiken haben eine Van-Laarhoven-Darstellung. Beispielsweise kann ein LensTyp Lens s t a b wie folgt dargestellt werden: Functor f => (a -> f b) -> s -> f t In Traversalähnlicher Weise kann a auf ähnliche Weise dargestellt werden, wobei die FunctorEinschränkung gegen Folgendes ausgetauscht wird Applicative: …
Real World Haskell, Kapitel 4, Seite 98 des Drucks fragt, ob wordsmit Falten implementiert werden kann, und dies ist auch meine Frage: Ist es möglich? Wenn nicht, warum? Wenn ja, wie? Ich kam auf Folgendes, das auf der Idee basiert, dass jedem Nicht-Leerzeichen das letzte Wort in der Ausgabeliste vorangestellt …
Hier ist ein Teil des Codes aus der Dokumentation für fs2 . Die Funktion goist rekursiv. Die Frage ist, woher wissen wir, ob es stapelsicher ist und wie man begründet, ob eine Funktion stapelsicher ist? import fs2._ // import fs2._ def tk[F[_],O](n: Long): Pipe[F,O,O] = { def go(s: Stream[F,O], n: …
Zum Bereinigen einer Datenliste habe ich eine Methode erstellt, die die Liste der Daten und die Liste der durchzuführenden Reinigungsvorgänge akzeptiert. public <T> List<T> cleanData(List<T> data, List<Function<T, T>> cleanOps) { List<T>dataNew=data.stream().map((str) -> { T cleanData = str; for(Function<T,T> function:cleanOps) { cleanData=function.apply(cleanData); } return cleanData; }).collect(Collectors.toList()); return dataNew; } Das Problem …
Ich lese die Buchprogrammierung in Scala und es heißt: ... in diesem Fall wird als Nebeneffekt auf den Standardausgabestream gedruckt. und ich sehe nicht, wo der Nebeneffekt liegt, da println für dieselbe Eingabe dieselbe Ausgabe druckt (glaube ich), zum Beispiel jedes Mal, wenn wir Folgendes aufrufen: UPDATE : println(5) es …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.