?
warum "zurückfallen"?
Haskell hat die ein oder andere (interne) Designmacke, mit denen man sich (notwendigerweise) auseinandersetzten muß - und dann entscheiden, welchem Abstrahierungsprinzip man den Vorzug gibt. Recht gut machen sich Mischvarianten wie Scala.
Bei Haskell könnte man zynischerweise sagen, erstmal Prolog lernen und dann mit den Prologprogrammen die formale Struktur der Haskellprogramme (welche gewissermaßen die UML) erarbeiten
Das typische Profiteam dürfte sich zuallererst auf die Suche nach sinnvollen und funktionellen Bibliotheken machen und finden, dass Scala ein guter/befriedigender Kompromiss ist.
Anfänger brauchen ein paar Anläufe, um größere Hürden wie Dividieren oder andere Grundlagen (Typendefinitonen, Typen generell Accumulatoren usw.) zu überspringen.
Profs aus der Logikecke haben sowieso schon ihren logischen Plan und ihre logische Freude
Was letztlich bei allen an erster Stelle stehen muß, ist Übung, weil die Syntax (selbst einfache) von Haskell oft nicht genau verstanden wird, und so auch typische "Design Pattern" nicht (wirklich). Das Problem hier ist, dass öfter in öffentlichen Texten auf gewisse Muster zurückgefriffen wird, die zwar einleuchten, aber oft auch (maximal) ineffektiv sind (während der Hinweis auf diesen Sachverhalt ausbleibt).
Haskell ist aber selbst so flexibel und schlüpfrig, so (mega-)beastig und so wirklich gut gemacht, dass du sagen kannst, der Algorithmus bzw. die natürliche Struktur des Problems (kann auch objektorientiert sein) ist das Design.
(Auch wenn natürlich die Grundlagen der Sprache viel älter sind, Mengenlehre, Logikidealismus der 50/60 Jahre usw.)
(man könnte noch zynischer meinen, c++ sei schon in der Welt des Chaos (Mandelbrot, 70er (aber GUI!)) angekommen )
(Die Übertragbarkeit von Pattern bei Haskell: kommt drauf an, generell aber leicht, wegen der Mathematiknähe (viele Pattern...) der (abstrakten) Maschinennähe) und der guten Abstrahierfähigkeit der Sprache.
Letztlich: üben, üben, und? -> klein anfangen -> Grundlagenlücken schließen -> die Möglichkeiten verstehen (und die eigene gedankliche Begrenztheit) -> fliegen
Passender Literaturhinweis? siehe konkrete PDFs und vielleicht Barskis "Land of Lisp". Hier gehts aber nicht um Design an sich, sondern um den Spaß am Spielen, am Programmieren und so weiter