Live data from Hacker News

15-150: Principles of Functional Programming

brandonspark.github.io

41–50 of 146 posts

Re: 15-150: Principles of Functional Programming

#42

Slightly off-topic but what's a good forum to seek help on FP practices outside of the courses like this online? Every winter break I get back into trying to learn more FP (in Haskell) and in the past several years I have been practicing algo problems (codeforces, advent of code, leetcode). I always get stuck on more advanced graph algorithms where you traverse a and modify a graph, not a tree structure - it gets par…

[deleted]

Re: 15-150: Principles of Functional Programming

#44

just in time for nobody to really care about programming because LLMs are so good at translation and all computer code and programing are a subfield of linguistics...

Functional programming is a perfect pairing with AI-generated code because the type systems are generally more expressive than non-functional languages, which means the compilers can catch all sorts of errors.

Re: 15-150: Principles of Functional Programming

#45

Wow, he went from taking his bachelor to lecturing. I always dreamt of that when going through my degree and encountering courses that needed a thorough rework.

tbh if I were in a class taught by someone who had JUST finished their bachelor's degree, I'd take a lot of it with a grain of salt

I went to CMU and was in AEPI fraternity with Brandon Wu. Brandon Wu is exceptional when it comes to functional programming. He was head TA of 15150 for a year, I have 100% confidence in him.

He took a break from TAing for some time, and when he returned he decided to have some fun with his application. He wrote a transpiler from a C like syntax to SML the day before his interview, and used it to joke that they should transition to teaching functional programming in C.

Re: 15-150: Principles of Functional Programming

#46

My complaint with FP: Sometimes I just want to do something silly, like adding a log somewhere. If I choose to add said side effect, now all my functions are marked with an io signature (so there might be _other_, nastier side effects hiding there as well - mainly an issue if you have multiple people contributing to the same project). If I don't add the side effect, and choose to refactor multiple layers of code, I w…

> Sometimes I just want to do something silly, like adding a log somewhere.

In Haskell, you can use Debug.Trace for just that purpose, when you don't want to change the type of your function.

Re: 15-150: Principles of Functional Programming

#47
post #36

just in time for nobody to really care about programming because LLMs are so good at translation and all computer code and programing are a subfield of linguistics...

Programming runs along the back of mathematics. A field famous for spending centuries wasting time on silly games until those same silly games end up being the foundation on which modern society functions. Even if LLMs completely remove the need for programming (a rather big IF), this is not time wasted.

[deleted]

Re: 15-150: Principles of Functional Programming

#48

Earlier quoted context omitted.

tbh if I were in a class taught by someone who had JUST finished their bachelor's degree, I'd take a lot of it with a grain of salt

I went to CMU and was in AEPI fraternity with Brandon Wu. Brandon Wu is exceptional when it comes to functional programming. He was head TA of 15150 for a year, I have 100% confidence in him. He took a break from TAing for some time, and when he returned he decided to have some fun with his application. He wrote a transpiler from a C like syntax to SML the day before his interview, and used it to joke that they shoul…

Yeah idk anything about him in particular. I just mean that, on paper, someone who goes straight from bachelor's to teaching is someone who doesn't really have any experience. I notice that a lot of the people who extol the virtues of FP to me are a lot of people straight out of college and have little real-world reference for why FP is useful in a prod environment

Re: 15-150: Principles of Functional Programming

#49

Earlier quoted context omitted.

tbh if I were in a class taught by someone who had JUST finished their bachelor's degree, I'd take a lot of it with a grain of salt

If you expect perfect factual accuracy from your teachers, yeah. On the flip side, they don't have the curse of knowledge yet i.e. it's still fresh in their mind what was difficult in the beginning, so they can probably explain very well. Just keep in mind who's teaching you, and it's just like if a co-student teaches you. And if you feel you have to take what you hear with a grain of salt, that's probably good for y…

I just mean in terms of experience. If you deviate from textbook accuracy and go into providing practical advice for real-life scenarios, someone with only a bachelor's and no work history is someone who can only give you canned anecdotes from others. Looking at his resume, it looks like he's had some internships so he has a bit of experience, and that's probably worth something

Re: 15-150: Principles of Functional Programming

#50

My complaint with FP: Sometimes I just want to do something silly, like adding a log somewhere. If I choose to add said side effect, now all my functions are marked with an io signature (so there might be _other_, nastier side effects hiding there as well - mainly an issue if you have multiple people contributing to the same project). If I don't add the side effect, and choose to refactor multiple layers of code, I w…

This is Haskell-specific, it sounds like. I agree, the IO monad is really quite inconvenient sometimes. I work in OCaml, which is also a functional language, but prints can be added in single lines. I address this point in Lecture 19 (Imperative Programming), actually, but my perspective is -- we invented immutability and purity to serve us, but we need not be fanatically beholden to it. In my opinion, I think Haskel…

yeah, I've been trying to get this mindset as well - even though sometimes I feel that I'm "cheating" :)
Post reply on HN