Égal (=) Vs flèche vers la gauche (<-) symboles en haskell

Code de travail:

import System
main = do
     [file1, file2] <- getArgs
     --copy file contents
     str <- readFile file1
     writeFile file2 str

S'écraser code:

import System
main = do
       [file1, file2] = getArgs
       str = readFile file1
       writeFile file2 str

Quand j'ai essayé, il a jeté une erreur comme:

un.hs:6:18: parse error sur l'entrée '='

Alors, combien est différent <- de =?

  • Vous avez besoin de comprendre Monade de-la cabane à sucre pour avoir une réelle idée de la façon dont cela s'inscrit.
  • c'est techniquement vrai, mais je pense qu'il devrait être possible de répondre à cette question, sans parler de la M-parole. Après tout, m***ds sont juste une façon de traiter avec les IO dans une langue pure. Haskell aurait encore une séparation entre le pur et l'impur code, même si elle n'a pas m****ds construit dans la langue, et ce problème (ou similaire), il existerait toujours.
  • Alors qu'il est possible de répondre à cette question sans expliquer la Monade, je doute vraiment si cela peut aider les OP à saisir le concept. Cela étant dit, il ya beaucoup de bonnes réponses ici-bas.
InformationsquelleAutor Madhavan | 2015-02-20