技术漫谈
文章平均质量分 92
MoonBit月兔
这个作者很懒,什么都没留下…
展开
-
如何有效地提高编程(特别是debug)能力?
但当程序涉及的数据量很大,难以逐一确认时,就需要运用对程序的理解,来尝试从大量数据中挖掘出不对劲的地方了。一段程序在正确运行时,在程序的不同位置,各种数据往往需要满足各种各样的性质(例如:二叉搜索树的左子树的元素永远应当比父节点小)。以月兔为例,月兔会给我们提供很多的检查,例如,如果我们声明了一个标识符应当为变量,那么月兔会检查这个变量是否被修改,因为一种出错的场景就是在写循环的时候可能忘记对计数器进行迭代。除了 debug 自己写的程序,在协作开发时,可能还需要 debug 别人写的代码。原创 2024-02-19 17:18:22 · 913 阅读 · 0 评论 -
聊一聊函数式编程能解决什么问题?(以MoonBit月兔为例)
我们在这里只提到了函数式编程的冰山一角。事实上,函数式编程还有很多优点可以应用在工程中。例如,不可变性可以避免在并行程序中产生数据冲突;不可变性也可以让编译器进行大量激进的优化,以获得较高性能。从软件工程的角度,我们可以看到,函数式编程可以让我们开发出健壮、可适应、可重用的软件,来更好地面对工程中的需求与挑战。但需要强调的是,函数式编程毕竟不能包打天下,因此,我们推荐采用多范式编程。原创 2023-11-23 10:59:51 · 371 阅读 · 1 评论 -
技术漫谈|聊聊什么是多范式编程?
范式是一个体系,用来描述我们所面对的问题,并提供了一套方法论,来配套解决方法。但是我们也需要意识到,在软件工程中,不存在所谓的“银弹”,没有什么范式是可以一套打天下的。每一种范式都会有自己的优缺点。例如,想要用纯函数式编程来做输入输出,就可能会遇到Monad这个棘手的概念;而用面向对象编程开发,则不免陷入GoF提出的各种设计模式的纠缠,而究其原因则来源于面向对象的一些缺陷。月兔编程语言,以及众多现代编程语言,支持多范式编程,就是希望能提供一把瑞士军刀,以最合适的角度切入问题,解决问题。原创 2023-11-16 10:47:01 · 215 阅读 · 1 评论