Ich bin ein Anfänger mit Haskell und ich habe begonnen, Fehler zu sehen ähnlich wie:Haskell: -fglasgow -exts sollte man Code vermeiden, der das erfordert?
Illegal parallel list comprehension: use -fglasgow-exts
Ich arbeite innerhalb von ghci
und mit ghc
aber nur aufgrund der Tatsache, dass es das erste war, das ich auf einer Suche gefunden habe.
Ich bin neugierig, ob das die Art von Situation ist, die man vermeiden möchte, vorwärts zu kommen. Alle Suchanfragen, die ich gefunden habe, erwähnen, dass diese Erweiterungen die zugrundeliegenden Einrichtungen offen legen, die nützlich sein können (oder auch nicht).
Ein spezifisches Beispiel ist
fibs = 0 : 1 : [ a + b | a <- fibs | b <- tail fibs ]
Ich nehme an, dass sowohl a
als auch b
aus der Liste zur gleichen Zeit lesen, verursacht hier Probleme ...? Also, wenn die Glasgow-Erweiterungen das einzige Mittel sind, um dieses Konstrukt zu unterstützen, ist es üblicher, die Liste auf eine andere Weise zu erstellen oder einfach nur anzunehmen, dass die Erweiterungen verfügbar sein werden?
Vielen Dank im Voraus für jede Eingabe.
[EDIT] Es tut mir leid, wenn das nicht ganz klar war, aber meine Frage ist, ob die Einbeziehung von Glasgow (oder anderen) Erweiterungen als schlechte Übung angesehen wird. Das obige Beispiel soll nur den Fehlertyp veranschaulichen, der diese Frage ausgelöst hat.
Recht bekannt gegeben, aber ich gehe davon aus, dass noch fügt die spezifischen Erweiterungen in die Codebasis ein. Meine Frage ist, ob das eine gute Praxis ist oder nicht. Zum Beispiel ist es in C möglich, eine Quelldatei in eine # include-Direktive aufzunehmen, aber dies wird als schlechte Praxis angesehen. – ezpz
@ezpz: Ich verstehe. Ich werde meine Antwort aktualisieren. Kurze Version: Es hängt von der Erweiterung ab, aber viele sind sicher und sogar vorteilhaft zu verwenden. Ich glaube nicht, dass Parallelverständnisse weit genug verbreitet sind, um als solche zu gelten. –
Danke für den Link - das ist genau die Art von Informationen, die ich betrachten möchte. – ezpz