News for hackers. Stuff that matters.
Re:MIT SICP Book in JavaScript by hinkley on Sunday July 23, 2023 @02:32PM (#36838228)
I think SICP would be just peachy in Elixir, but I’m coming around to the notion that keeping functional programming for functional programmers is a form of professional neglect.

Functional core, imperative wrapper is one of the few sane ways to build a large (Conway’s Law afflicted) system, and too many of my peers never studies SICP in school. They don’t even know the damage they do, and as we’ve learned in many, many other circles, vilifying people does not get them to change. It’s a tool of last resort, and most often used to publicly label someone for ostracism, not help.

So excuse me, but y’all are crazy. We need SICP for JavaScript developers more than we need SICP for every functional language in the world, combined. And JavaScript is only one corner of the programming world.

Write functional code in a language that does not force you to write functional code. Take the training wheels off. Live in the real world.

Re:MIT SICP Book in JavaScript by Sterm on Sunday July 23, 2023 @04:45PM (#36839644)
Scheme is not a functional programming language. The last 2/3rds of sicp are possible only because you can mutate state.
Re:MIT SICP Book in JavaScript by Zambyte on Sunday July 23, 2023 @08:34PM (#36841577)
Actors in Elixir (and AFAIK the Actor Model in general) can mutate their internal state in response to receiving a message. It would probably be awkward to use actors in this way just to facilitate mutation though.
Re:MIT SICP Book in JavaScript by hinkley on Monday July 24, 2023 @12:21AM (#36843073)
Scheme is not a pure functional language. I think you need to check the rest of your notes.
Re:MIT SICP Book in JavaScript by andai on Monday July 24, 2023 @02:16PM (#36852136)
According to Let Over Lambda, Lisp is the least functional programming language ;)

https://letoverlambda.com/textmode.cl/guest/chap5.html

Re:MIT SICP Book in JavaScript by Sterm on Monday July 24, 2023 @05:55PM (#36854786)

    (define lol
      (let ((a 0))
        (lambda ()
          (set! a (+ a 1))
          a)))
Scheme is a functional programming language in the same way python is. The only difference is that it has tail call optimisation and the stack doesn't have an arbitrary limit on the number of function calls it can hold.
Re:MIT SICP Book in JavaScript by andai on Monday July 24, 2023 @02:14PM (#36852109)
> JavaScript is only one corner of the programming world.

True, but it's a very obtuse corner!