News for hackers. Stuff that matters.
Re:Learn Physics with Functional Programming by bPspGiJT8Y on Wednesday September 06, 2023 @04:26PM (#37410804)

  fact n = do
    let n' = n - 1
    if n <= 1 then 1 else n * fact n'
Here you go. Not sure about Haskell but in PureScript it compiles. Use "<-" for functions which return a value in IO type constructor, otherwise use "let".
Re:Learn Physics with Functional Programming by itishappy on Wednesday September 06, 2023 @06:27PM (#37412265)
That's kinda the point though, right? There's something different about this `IO` thing that uses special syntax. You might be able to guess something and get it to compile, but should you?

  fact n = do
    let n' = do n - 1
    if do n <= 1 then do 1 else do n * fact n'