{"action":"closed","issue":{"url":"https://api.github.com/repos/sdiehl/write-you-a-haskell/issues/10","labels_url":"https://api.github.com/repos/sdiehl/write-you-a-haskell/issues/10/labels{/name}","comments_url":"https://api.github.com/repos/sdiehl/write-you-a-haskell/issues/10/comments","events_url":"https://api.github.com/repos/sdiehl/write-you-a-haskell/issues/10/events","html_url":"https://github.com/sdiehl/write-you-a-haskell/issues/10","id":53484454,"number":10,"title":"Recursion Discussion","user":{"login":"dgstevens","id":1317020,"avatar_url":"https://avatars.githubusercontent.com/u/1317020?v=3","gravatar_id":"","url":"https://api.github.com/users/dgstevens","html_url":"https://github.com/dgstevens","followers_url":"https://api.github.com/users/dgstevens/followers","following_url":"https://api.github.com/users/dgstevens/following{/other_user}","gists_url":"https://api.github.com/users/dgstevens/gists{/gist_id}","starred_url":"https://api.github.com/users/dgstevens/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dgstevens/subscriptions","organizations_url":"https://api.github.com/users/dgstevens/orgs","repos_url":"https://api.github.com/users/dgstevens/repos","events_url":"https://api.github.com/users/dgstevens/events{/privacy}","received_events_url":"https://api.github.com/users/dgstevens/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-01-06T06:07:00Z","updated_at":"2015-01-14T22:54:54Z","closed_at":"2015-01-14T22:54:54Z","body":"I'll preface this by saying that my knowledge of Haskell is intermediate at best, but the discussion on recursion seems to fall somewhere between misleading and wrong. Many recursive functions are not tail-recursive - the factorial example isn't, for instance. It's possible to transform function to be tail-recursive, but I would be surprised if such transformations are the default behavior of any Haskell compiler at -O0. I especially would hesitate to speculate on the implementation of recursion due to Haskell's laziness.\r\n\r\nAs a side note, the mutually recursive examples have extraneous semicolons."}}