V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
xiaopanzi
V2EX  ›  程序员

国内有哪些大学讲授 Lisp/Scheme/Racket?

  •  
  •   xiaopanzi · 3 天前 · 1796 次点击

    之前零零散散地学习了 Haskell 或 Lisp 等,这次又心血来潮想试试 Racket ,所以有了上述疑问。

    从计算机教育上讲,Lisp 系列语言是否真的比 C/Python/Java 等更好?如果是,为什么后者还是主流。

    进一步,目前有了 LLM ,上述情况是否有变化?

    15 条回复    2025-06-06 10:25:57 +08:00
    lonenol
        1
    lonenol  
       3 天前   ❤️ 1
    没啥变化,依然是圈地自萌。lisp 在可见的未来都是非主流,,但因为非主流而且语法奇怪显得逼格高,又不会被彻底淘汰。。
    Meursau1T
        2
    Meursau1T  
       2 天前
    因为是在说“计算机教育”,所以我就从 Scheme 来说,不谈工业上的 Common Lisp 。
    Scheme 虽然因为默认偏向函数式、直接展示抽象语法树这两个特点有一定优势,可以辅助理解递归概念、学习形式语言与自动机,但离开这一小部分场景后,带来的很多是劣势。
    一方面语法太特别,和未来的实际应用场景完全不挂钩,这一点被 C 语言完全克制。
    另一方面表达冗长,在学算法的时候,很多算法用的都是迭代、数组,用 Lisp 写会很麻烦,赋值语句都要长不少。
    而且,现在计算机领域面向对象还是有一席之地的,大学可能不会教函数式,但必然会教面向对象,就 Scheme 而言,面向对象实在不是强项。
    再有,考虑到计算机专业大部分课程是和硬件有关的,Scheme 的设计跟这些课程实在是不搭。
    所以基本上不可能取代 C 的位置,在入门学习整个计算机领域方面 C 真的更合适,Lisp 作为课外的东西学学顶天了。
    kagenomirai
        3
    kagenomirai  
       2 天前
    教育上也没有银弹,例如讲底层常用 C 讲算法常用 Java 。
    另外教育上比较出名的应用就是上个世纪 MIT Scheme 了吧,但那个时候语言选择本来也不多。
    你学过了 Lisp ,有没有感觉 Python 和 JS 包含个阉割版 Lisp ?
    Lisp 的很多设计已经像家常便饭一样融入主流语言,历史价值更大。
    levelworm
        4
    levelworm  
       2 天前 via Android
    函数式对应的是计算机科学 lamda calculus 这块的东西吧。
    soul11201
        5
    soul11201  
       2 天前
    首先,你把重点搞错了,语言本身其实不重要,更重要的是下面一些相关领域:
    软件工程、编译原理、静态语言分析、编程语言原理、理论计算机科学、形式化证明、范畴论、语义学,这块知乎上有很多高手

    谁更好?单纯从语言特性来说,看 Python/Java/PHP 很多语言加上一些特性后,有些人的那个热乎劲,跟看傻子在吃屎一样。看社区有些人为了要不要加一些人特性,撕来撕去,感觉跟傻子打架一样,仔细想想,但其实不是~ 其实他们都是不同人手中的工具,不同的语言也不过是在不同的领域流行而已~ 当年陈浩有个观测,大意是:基础设施:C/Rust 云原生:Go 企业级应用:Java

    最近听了一个 Podcast 通过他们的工程实践来看:目前 LLM 不会写 Rust 。从 LLM 是个网络信息整合器来看,目前估计也写不好~
    soul11201
        6
    soul11201  
       2 天前
    再来一个先前看到的八卦:
    Racket 后面会碰到延续,当年 Lua 作者发了一篇论文,说 Lua 的协程是和一阶延续是等价的~
    ZE3kr
        7
    ZE3kr  
       2 天前 via iPhone
    大学我觉得 Haskell 和 Lisp 都很好。C/Java/Python 留给培训机构去讲就够了。大学哪怕拿 C 去教也是与工业脱节的。美国的少数学校已经用 SML/NJ (类 Haskell )作为第一门编程课的编程语言了。

    但是这么搞有很大的阻力,因为后续很多高阶一点的编程课,或者偏工业的编程课,是基于 Java 或类 C 编程语言的。Haskell 和 Lisp 又无法衔接上这些课程,最终还是要再学一遍类 C 语言。非计算机专业的话这么搞就没问题
    levelworm
        8
    levelworm  
       2 天前 via Android
    @ZE3kr #7
    C 不可能不搞,其实最简单的就是强迫教授和学生把语言融入到课程中,而不是专门开设语言课程。
    Ocean810975
        9
    Ocean810975  
       2 天前
    南大有 SICP ,这个课是买的 MIT 的 SICP 课,现用 Python 主要内容继承自原来的 Lisp 讲述的。
    caiqichang
        10
    caiqichang  
       2 天前
    10+年前开发 AutoCAD 插件用过 Lisp ,后面换成了 Visual Basic
    westtide
        11
    westtide  
       2 天前
    你是想学函数式编程吗?在学界我们主要用它写定理证明求解器、模型检验工具,例如 https://github.com/uuverifiers/eldarica 和 HOL ,华东师范大学的邓玉欣有详细介绍函数式编程的讲义和课程。
    maix27
        12
    maix27  
       2 天前
    》从计算机教育上讲,Lisp 系列语言是否真的比 C/Python/Java 等更好?如果是,为什么后者还是主流。
    主流就更好吗?欧美的 zzzq 也是主流,人家那个你能接受?当然这个类比是错的,回到这个话题,国内的教育脱离工业界和学术界主流也不是一年两年吧? 0 几年就有上交的大学生自救指南,到现在 20 多年了,你可以想想,除了少数几个学校(清华/南大)还在革新。其他的学校的是什么情况不用讲了吧?

    当然这并不意味着国外的教育就很好,我只是在评价某个国家的教育的时候拿这个举例子。

    国外主要是不强制,因为没有非升即走和自由民主,对学生的学习计划的安排不会很僵硬,FP 可以是选修课,甚至可以替代 C 系做非主流的必修课,美加的滑/华大都有 racket 的课,ucb 就更极端了,直接融进入门课里,函数式和命令式, oop 兼讲。
    欧校那边可能教 FP 课的(尤其是小语种,编程语种)更广泛的更广泛。
    mightybruce
        13
    mightybruce  
       2 天前
    Lisp, Scheme 这些注定不会火, 并且很多函数式语言比如 go/rust 吸收了它的特点,我觉得完全没有必要再学 lisp 了,倒是 AI 大爆发后,
    我觉得可以学学 AI 三大流派之一的 符号主义影响下的语言 prolog 。
    KellaTeRyan
        14
    KellaTeRyan  
       10 小时 6 分钟前
    @mightybruce prolog 对于先入为主的人很难改变,之前每次想学的时候都会先想 java 怎么实现。
    xiaopanzi
        15
    xiaopanzi  
    OP
       9 小时 28 分钟前
    @KellaTeRyan 我也接受不了 Prolog 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2628 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 11:54 · PVG 19:54 · LAX 04:54 · JFK 07:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.