一位朋友试图让我相信clojure的好处,我正在尽力理解这种语言.我查看了很多网站并浏览了"勇敢与真实的Clojure"一书,但我仍然遗漏了一些东西.
我的背景是面向对象编程,程序对象代表现实世界的对象是我的第二天性.我已经读过clojure不是OO但是我无法理解clojure会做什么.
这是一个例子(非常简化).我正在编写一个用于计划退休收入的应用程序.它有一个储蓄账户类和一个养老金类.储蓄账户有余额和利率.它有一个Withdraw方法,在一年内取出一个指定的数量(传递的参数).余额减少了提取金额,每年增加利息金额.你永远不会超过余额.
养老金类有年收入和年增长率.这也有退出方法,但撤回的金额始终是年收入(每年增加百分比).即它的计算方法与储蓄账户不同.
在我的OO程序中,这两个类都实现了一个定义Withdraw方法的协议,因此我的代码可以以相同的方式处理它们,而不需要考虑它们的差异.
在clojure世界中,什么代表储蓄账户和养老金.即什么结构将实例数据和操作该数据的方法聚集在一起?在OO中,类定义数据和方法.该实例是数据的唯一出现.我定义类的代码文件告诉我有关该类所代表的对象的所有信息.clojure如何做到这一点,或者做什么呢?
clojure ×1