TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

15-150: Principles of Functional Programming

448 点作者 brandonspark超过 1 年前

24 条评论

jstrieb超过 1 年前
I loved 150 when I took it, and program in SML from time to time to this day.<p>Bob Harper (a CMU professor with a focus on PL theory) also has a really good SML reference that is closer to a textbook than lecture notes.<p><a href="http:&#x2F;&#x2F;www.cs.cmu.edu&#x2F;~rwh&#x2F;isml&#x2F;book.pdf" rel="nofollow noreferrer">http:&#x2F;&#x2F;www.cs.cmu.edu&#x2F;~rwh&#x2F;isml&#x2F;book.pdf</a>
评论 #38363115 未加载
aroman超过 1 年前
150 was one of my favorite courses at CMU; each homework really made me feel like I unlocked a new level of reasoning with code.
评论 #38354785 未加载
评论 #38355601 未加载
asicsp超过 1 年前
See also: <a href="https:&#x2F;&#x2F;functionalcs.github.io&#x2F;curriculum&#x2F;#orge441e24" rel="nofollow noreferrer">https:&#x2F;&#x2F;functionalcs.github.io&#x2F;curriculum&#x2F;#orge441e24</a>
vermilingua超过 1 年前
Content aside, what gorgeous slides. I wish any of my lecturers had the same eye for presentation.
评论 #38361309 未加载
frankbreetz超过 1 年前
Does this include exercises? I didn&#x27;t see any and I always find that the most useful part of learning.
评论 #38353272 未加载
评论 #38354106 未加载
评论 #38353253 未加载
评论 #38353925 未加载
评论 #38353251 未加载
ajbt200128超过 1 年前
Of note, CMU produces a bunch of functional programming research, including a whole homotopy type theory department, so this is a quality source.
评论 #38353873 未加载
low_tech_punk超过 1 年前
God send!! The FP learning resource is quite sparse on the internet. I’ve been looking for structured material like this for a while.
评论 #38359560 未加载
valenterry超过 1 年前
No word on where the concept originally comes from? (in the text&#x2F;description)<p>Should have at least differentiated between &quot;functional programming&quot; and &quot;pure functional programming&quot; IMHO.
andrewl超过 1 年前
This looks valuable. And it is from the summer of 2023, so quite current.
agomez314超过 1 年前
Great resource! Forgive my ignorance but why do so many modern functional programming courses use Standard ML instead of a Lisp dialect? Is it because of its built-in type-checking, or is it just how it&#x27;s always been taught?
评论 #38353288 未加载
评论 #38355587 未加载
评论 #38353259 未加载
评论 #38354045 未加载
评论 #38353241 未加载
评论 #38354128 未加载
endgame超过 1 年前
The lecture on CPS made things &quot;click&quot; for me in a way that they hadn&#x27;t before. Thank you.
hohohmm超过 1 年前
Use to be called 15-212. TA-ed it for 1 semester. That&#x27;s when I really understood programming.
esafak超过 1 年前
Pretty good for a new grad!
gsuuon超过 1 年前
This looks cool! Just a note, it looks like the youtube playlist is in reverse order: <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=DSGXB9G5dxk&amp;list=PLsydD1kw8jng2t2G8USQNLz0faYZetPnH&amp;pp=iAQB">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=DSGXB9G5dxk&amp;list=PLsydD1kw8j...</a>
评论 #38356481 未加载
PennRobotics超过 1 年前
Standard ML (sml &#x2F; smlnj)<p>The instructor is clear, energetic, has a decent flow in the first lecture e.g. emphasizes the important points with vigor and repetition, switches media every 10 or 15 minutes, has a conversation with students. Slides are relatively noise-free and are informative; terms to know are highlighted.<p>I haven&#x27;t watched a full functional programming lecture series yet, but I&#x27;d gladly audit this one.<p>As a &quot;new&quot; instructor (as in, not a TA anymore) he&#x27;s got a bit of teaching talent. I hope he keeps a tight feedback loop and improves every year and continues publishing material.
评论 #38352976 未加载
systems超过 1 年前
on the choice of language to teach the course why sml<p>i think there are a lot of nicer choice<p><pre><code> OCaml , its basically sml only more popular and used more in real life Haskell , again more popular , and used more in real life Idris , newer and said to be more progressive F# , a more practical choice and similar to sml a lisp , well if you want to focus on the functional part and less on the types part</code></pre>
评论 #38353188 未加载
评论 #38354255 未加载
评论 #38353058 未加载
imslavko超过 1 年前
Slightly off-topic but what&#x27;s a good forum to seek help on FP practices outside of the courses like this online?<p>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).<p>I always get stuck on more advanced graph algorithms where you traverse a and modify a graph, not a tree structure - it gets particularly tricky to work on circular data structures (I learned about &quot;tying the knot&quot; but it&#x27;s incredibly challenging for me) and usually the runtime perf is sub-par both asymptotically and empirically.
评论 #38354294 未加载
评论 #38353989 未加载
评论 #38353591 未加载
c-c-c-c-c超过 1 年前
Wow, he went from taking his bachelor to lecturing.<p>I always dreamt of that when going through my degree and encountering courses that needed a thorough rework.
评论 #38353599 未加载
评论 #38353286 未加载
freedomben超过 1 年前
I do wish functional programming were more taught. we&#x27;re getting to a point where I almost think OOP should be taught briefly and the rest of the focus on C&#x2F;C++ for low level stuff (OS, data structures, some algorithms), and something functional or pseudo-functional for high level stuff. Most of the newer codebases in startups now require functional concepts to understand what&#x27;s happening. For example, try writing modern JS without understanding .map, .reduce, et al, and function passing, etc.<p>Regardless I think it&#x27;s important that students get exposed to more than just Python, which seems to increasingly be the only thing students come out knowing.
评论 #38352873 未加载
评论 #38353053 未加载
frozenlettuce超过 1 年前
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&#x27;t add the side effect, and choose to refactor multiple layers of code, I will need to make all my functions return multiple values and later fold over all the accumulated strings and... life is too short for that. The principles really resonate with me, but maybe we are limited by the current tooling, because the development experience is quite clunky in its current stage.
评论 #38353407 未加载
评论 #38355477 未加载
评论 #38353483 未加载
评论 #38353660 未加载
评论 #38353850 未加载
评论 #38361395 未加载
评论 #38359895 未加载
评论 #38360818 未加载
评论 #38353374 未加载
评论 #38353869 未加载
airstrike超过 1 年前
Hey Brandon, thanks for posting this. Off-topic but maybe consider serving up thumbnails on that page instead of the full-size pngs <a href="https:&#x2F;&#x2F;brandonspark.github.io&#x2F;prologue&#x2F;lecture01.png" rel="nofollow noreferrer">https:&#x2F;&#x2F;brandonspark.github.io&#x2F;prologue&#x2F;lecture01.png</a>
评论 #38354190 未加载
Koshkin超过 1 年前
It seems that the fundamental problem with the functional paradigm (in its pure form) is that the real world - including the architecture of the computer that is used to run the programs on - is full of side effects, i.e. is essentially &quot;imperative,&quot; and with this impedance between them the idea creates more problems than it solves.
评论 #38356229 未加载
评论 #38354196 未加载
评论 #38354178 未加载
评论 #38354202 未加载
zubairq超过 1 年前
Watching it now
narinxas超过 1 年前
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...
评论 #38353466 未加载
评论 #38353628 未加载
评论 #38353077 未加载