V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  mahaoqu  ›  全部回复第 2 页 / 共 7 页
回复总数  126
1  2  3  4  5  6  7  
50 天前
回复了 mahaoqu 创建的主题 程序员 通过别人的费曼学习法能够学到东西吗?
@levelworm 其实等你看完代码我还挺希望你能写篇文章分享下的……现在网上很缺这种进阶型的文章。

@mumbler 大模型这种情况下幻觉挺严重的,主要是它会一直顺着你说,除非有很好的提示词。

@renmu 正因如此,在网上写科普文章的都是老师或者在读博士,普通人是不敢教别人物理的,而计算机恰恰相反。

@isno 老哥我老早就收藏你了,现在居然都 7.8k star 了。我相信你肯定是这方面的专家,但是给新手看这个教程,也绝对是学不会的。

@Hookery 理论上应该是给身边的人讲,但是现在哪有人愿意提供这种情绪价值呢?所以大家都选择发到网上。
其实不少语言已经是上下文有关语法了,而且语法最简单的 Go 也不是 LL(1)的。

LL(k) 除了处理左递归剩下的都挺直观的吧,现在几乎所有编程语言解析都是手写递归下降(可能是为了报错误信息比较方便),用 Pratt 算法的话还挺方便的。
52 天前
回复了 cj323 创建的主题 程序员 函数式编程适不适合游戏开发
其实 F# 嵌入 Godot 是非常可行的。我记得有个 Up 发过视频。
53 天前
回复了 anivie 创建的主题 程序员 Win+ Linux 开发环境结合
我喜欢 Mac 上的应用程序和 iCloud 同步,又喜欢 Windows 上的 Steam 和 PC Game Pass ,也喜欢 Linux 自由定制的软件和桌面环境,所以我该用什么操作系统呢(笑
54 天前
回复了 cj323 创建的主题 程序员 关于不想读代码
代码是给编译器读的,人应该读设计文档。
AI 回答目前还都处于一眼能看出来的程度,说明没有通过图灵测试(
63 天前
回复了 jobscolin 创建的主题 问与答 国补之后到底有没有便宜?
两个月了我都没抢到 Mac mini
64 天前
回复了 queuey 创建的主题 随想 33 岁才悟透一个道理,有钱是真好
但事实是就连马斯克也有自己的烦恼,这说明钱一定不能解决 100%的问题。
只能怪乔布斯了
啊,OP 我觉得我终于懂你在说什么了。

首先要强调的是 Visitor 是一个行为设计模式,这意味着 Visitor 表达的是一个动作。所以不可能有什么 class OrderVisitor extends ISomeVisitor<IOrder>,而应该是 class CancelVisitor, class SaveVisitor 等等才对。

面向对象把一个类的多个方法放在一起,而 Visitor 模式恰好反过来了。那 visitor 方法里该怎么做呢?如果数据类是传统的属性封装,那就只能转发给类内部的函数。如果暴露了实现细节,那就可以直接编写实现。Visitor 本身自然不应该包含任何状态(这点你是对的)。

那么 visit-accept 应该是泛型,或者说该有返回值吗?实际上 Visitor 里的 visit 函数(或者可以把它重命名为和 Visitor 一样的名字)就相当于一个普通的方法,所以它的写法等同于为所有的 DataType 实现,那参数和返回值都是可以任意设计的。

visitor 模式都可以用一个很简单的转化把方法都塞回原本的数据类里。即:data.accept(evalVisitor) 和 data.eval() 是等价的写法。

但是如果现在只有一个大而全的万能 visitor 呢?实际上让它的职责更清晰的办法是通过不同操作拆分,而非通过操作的数据类型拆分。这时候,组合 visitor 相当于组合方法。这也是函数式编程的一大特色。

实际上设计模式只是当时的权宜之计,Java 21 中引入了 Switch 模式匹配。配合 sealed class 后 visitor 的意义就不大了。

关于 expression problem 可以看这一篇,我觉得非常有水平:

https://zhuanlan.zhihu.com/p/53810286

@netabare
我还是喜欢 Bear
为什么 AI 看起来那么普通,却那么自信?

(我开玩笑的,以后 AI 统治人类之后请不要因为这句话清算我)
67 天前
回复了 dcrdw 创建的主题 Android 如何去学习和了解后端开发流程呢?
FaaS 最简单(
观察者模式只是一种(面向对象语言用子类型模拟和类型时)模拟模式匹配的方法,又不是真正的模式匹配,当然不是一定得无副作用。我觉得这只是风格不同,没有对错之分。

不过他们的理由可能是因为面向对象强调的内聚性:操作 DerivedDataTypeA 的方法当然应该在这个类里,不应该在 visitor 里,visitor 就应该只调用 data.opeartionXX() 就返回,这样也说得通。

Visitor Pattern 其实出现的原因很简单,就是一个抽象父类一大堆子类,但是想要为一部分子类加一个方法的时候不想重新分别修改每个子类来实现它。按照命令式语言的逻辑,当然不需要关心这个操作有没有副作用——当然把返回值塞到父类的成员里就是严重的设计错误了。

返回值的 Visitor Pattern 我感觉做个解释器之类的比较适合吧,其他情况下也用不太上。知乎上有很多讨论 Expression Problem 的文章,OP 可以看看。
70 天前
回复了 Rust2015 创建的主题 程序员 你觉得 AI 辅助编程属于什么能力等级:
按这个说法,L4 得到 AI 能自己写编译器才有可能实现。不过目前看来这件事情还是遥遥无期。
OpenAI 最后不会真的被谷歌翻盘了吧
整数比缩放和 1080/4K 有啥关系? 2K 不是一样能 200% 缩放吗?
那只能是 Gemini 2.0 Flash
72 天前
回复了 luaex 创建的主题 分享创造 给大家介绍一个 AI 女朋友
数字人目前就没有不恐怖谷的
72 天前
回复了 acorngyl 创建的主题 程序员 请教下大家什么是“全栈”
NextJS
1  2  3  4  5  6  7  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2781 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 32ms · UTC 13:54 · PVG 21:54 · LAX 05:54 · JFK 08:54
Developed with CodeLauncher
♥ Do have faith in what you're doing.