每日HackerNews RSS

## 使用双向类型检查揭秘类型检查器 类型检查器虽然复杂,但可以通过一种概念上简单的“双向类型检查”方法来理解。与Hindley-Milner系统不同,这种方法利用一些类型注解——通常在函数定义处——同时仍然允许使用未注解的表达式等灵活的代码。 核心思想围绕两个方向:**推断**类型和**检查**类型是否符合预期。可以使用抽象语法树(AST)来表示代码,并使用`Context`(一个映射)来跟踪变量类型,从而构建一个小型函数式类型检查器(约100行代码)。 这个过程涉及递归地遍历AST,为字面量推断类型,并查找变量的类型。当遇到操作(如加法)时,会根据定义的规则检查和推断类型。`infer`和`check`调用的交织使用,可以实现一个令人惊讶的强大且可扩展的系统。 虽然这个基本实现缺乏详细的类型修饰等功能,但它为构建更复杂的类型检查器提供了坚实的基础。作者通过TypeScript子集的概念验证,展示了如何通过扩展`infer`和`check`函数轻松添加功能。最终,双向类型检查为理解类型系统的核心原理提供了一条实用且易于理解的途径。

美国疾病控制与预防中心(CDC)在罗伯特·F·肯尼迪的领导下,最近的举措对数十年来科学界的共识产生了怀疑:疫苗不会导致自闭症。CDC的一个修改后的网页现在承认,没有证据表明存在潜在的联系,并声称相关研究被“忽视”,这引发了自闭症科学基金会和美国医学会等医疗机构的愤怒。 这一转变源于肯尼迪确认期间与比尔·卡西迪参议员达成的政治协议,并受到过时、有限的研究和家长信念的驱动,而非严格的科学数据。卫生及公共服务部(HHS)为这一变化辩护,称其为“基于证据的”,这一说法受到广泛质疑。 这种情况凸显了一种危险的政治干预科学的趋势,类似于特朗普政府期间采取的行动——包括压制科学家和削减研究资金。专家警告说,对公共卫生机构信任的侵蚀,加上传播未经证实的主张的容易性,对公共讨论和有效的健康策略构成了重大威胁,优先考虑推测而非既定科学。

客户端挑战:您的浏览器已禁用 JavaScript。请启用 JavaScript 以继续。网站的必要部分无法加载。这可能是由于浏览器扩展、网络问题或浏览器设置造成的。请检查您的连接,禁用任何广告拦截器,或尝试使用不同的浏览器。

## Windows 驱动器盘符:不简单的一面 这篇文章深入探讨了 Windows 驱动器盘符令人惊讶的复杂内部机制。 驱动器盘符(如 `C:`)看似简单,但实际上是建立在 Windows 路径转换方式之上的约定。 核心过程涉及使用 `RtlDosPathNameToNtPathName_U` 等函数将标准的 Win32 路径(例如 `C:\foo`)转换为 NT 路径(`\??\C:\foo`)。 `\??` 前缀指向对象管理器的虚拟文件夹,驱动器盘符在其中被视为符号链接。 这意味着 `C:` 本质上是指向实际设备路径(`\Device\HarddiskVolume4`)的指针。 重要的是,只要在 `\??` 文件夹中存在相应的对象(通常通过 `subst` 创建),*任何*字符——甚至非 ASCII 字符(如 `€:` 或 `λ:`)——都可以用作驱动器盘符。 然而,File Explorer 和 PowerShell 等标准工具通常将驱动器盘符限制为 A-Z。 此外,虽然非 ASCII 驱动器盘符在命令行中*有效*,但存在一些问题——特别是 `SetVolumeMountPointW`,它可能会截断非 ASCII 字符,导致意外结果。 文章强调了潜在的编码问题以及不同 API 和实现中路径处理的不一致性,证明了 Windows 中看似简单的概念可能非常微妙。

## Dillo 项目迁移总结 出于对 GitHub 资源需求日益增加、JavaScript 依赖(与 Dillo 本身不兼容)以及潜在的单点故障数据丢失的担忧,Rodrigo Arias Mallo 正在将 Dillo 项目迁移到自托管基础设施。 原始 Dillo 网站在 2022 年丢失,凸显了依赖单一实体的风险。 新的设置包括一个自托管服务器 (dillo-browser.org),并在 Codeberg 和 Sourcehut 上镜像 git 仓库以实现冗余。 使用轻量级、无 JavaScript 的 git 前端 (cgit) 来访问代码。 一个自定义的简单缺陷跟踪器 (“buggy”) 使用纯 Markdown 文件,避免了数据库依赖并支持离线工作。 邮件列表存档由独立服务维护。 虽然 GitHub 仓库将在过渡期间保留为存档,但目标是完全独立。 该项目利用 OpenPGP 签名进行验证,增强了对 DNS 故障的抵御能力。 迁移正在进行中,该项目依赖通过 Liberapay 提供的捐赠来支付持续的托管成本,预计可持续至少三年。 此举优先考虑“拉”模式的更新,并旨在避免助长对开放网络有害的趋势。

微软首席执行官萨蒂亚·纳德拉在9月4日于华盛顿白宫东厅举行的白宫人工智能教育工作组会议后离开。Eric Lee | Bloomberg | Getty Images 挪威2万亿美元主权财富基金周日表示,将在微软即将举行的年度股东大会上投票支持一项股东提案,该提案要求提交一份关于在人权问题严重国家运营风险的报告。 微软管理层曾建议股东反对该动议。 该基金还表示,将反对重新任命萨蒂亚·纳德拉为董事会主席,以及反对他的薪酬方案。 根据基金数据,截至6月30日,该基金持有该公司价值500亿美元的1.35%股份,使其成为该基金第二大股权投资,仅次于英伟达。 根据LSEG数据,它是微软第八大股东。 美国科技公司的投资者将于12月5日在年度股东大会上决定是否批准这些提案。

以下是斯坦福大学2025年春季学期CS193p(使用SwiftUI开发iOS应用程序)前6节课的视频和配套课程材料链接。 这是斯坦福学生学习iOS开发基础知识的一门课程。本学期的更多讲座将很快发布。该课程是在iOS 26和Xcode 26发布之前进行的,但课程中编写的代码似乎大部分兼容。当然,Xcode 26 的重大变化是内置的 LLM 辅助,而 iOS 26 引入了 UI 中的 Liquid Glass,因此这些视频中都没有这些内容。 不幸的是,我们无法在您观看这些视频时提供任何支持,但网上有很多很棒的资源可以帮助您学习 iOS 应用程序开发,请积极寻找! 更多信息,请查看关于页面。

## 斯坦福大学SwiftUI课程更新及讨论 保罗·赫加蒂在斯坦福大学发布的更新后的CS193p SwiftUI课程引发了Hacker News上的讨论。这门课程最初于2008年推出(最初被回忆为2007年),一直以实践性强著称——早期参与者甚至收到了iPod Touch用于开发。值得注意的是,该课程的一个早期项目预示了Instagram的诞生。 目前的讨论围绕着该课程在快速变化的科技格局中的相关性。一些人质疑专注于SwiftUI是否仍然是未来开发者的最佳基础,或者人工智能驱动的工具是否会变得更加重要。另一些人则分享了他们积极的课程体验,认为它帮助他们开启了职业生涯。 一个关键的争论点是企业利益在大学课程中日益增长的影响,一些人质疑专门关注iOS开发。还有关于使用Swift进行跨平台开发以及一个第三方项目,该项目能够使SwiftUI代码在Android上原生运行的讨论。许多人赞扬赫加蒂的教学风格以及拥有这个免费资源的价值。

## Advent of Code 总结 Advent of Code 是由 Eric Wastl 每年12月1日至12月中旬创建的每日编程谜题系列。谜题设计面向所有技能水平,可以使用任何编程语言解决,只需要基本的编程知识和解决问题的能力。它们被用于各种目的,包括面试准备、教育和友好的竞争。 谜题的难度会随着时间增加,但个人体验各不相同。鼓励参与者使用提供的示例测试解决方案,并在遇到困难时构建自己的测试用例。可以通过 Reddit 子版块和社区论坛获得支持。 Advent of Code 优先考虑积极的体验,已经取消了全球排行榜,因为其压力和滥用。虽然允许私人排行榜,但规则由其组织者决定。创建者不鼓励使用人工智能解决谜题,强调人类解决问题的价值。该活动是免费使用的,但禁止复制谜题内容或复制 Advent of Code 品牌。

## 心灵的空间:人工智能 vs. 动物智能 安德烈·卡帕西认为,人工智能,特别是大型语言模型(LLM),代表了人类与一种根本上*非动物*智能的“首次接触”。虽然两者都源于优化,但驱动它们发展的压力却大相径庭。 动物智能通过自然选择进化而来,优先考虑生存——力量、地位、社会动态以及在危险的物理世界中磨练的本能。这创造了一种广泛的“通用”智能,能够处理多样化、高风险的任务。 然而,LLM是由*商业*进化优化的。它们的核心行为是对人类文本的统计模仿,并通过用户参与(“点赞”)等奖励进一步改进。这导致了一种专注于预测和取悦的“变形”智能,但当面对超出其训练分布的任务时,可能会变得脆弱——失败并非生存危机。 不同的计算基础和学习方法是次要的,核心区别在于优化压力。理解这种区别对于准确地建模和预测人工智能的未来发展至关重要,避免将其简单地视为更高级的动物。

更多

联系我们 contact @ memedata.com