继续emacs以及lisp的学习,这一次的学习对象依然是common lisp,这一次我们看一下generic function的简单使用。

    之前,已经用过其他形式的函数。比如,下面的这个例子。

305_comon lisp gerneric function初步_github

    这是之前接触过的一些常用的函数定义以及使用方式,接下来看一下generic function的使用。

305_comon lisp gerneric function初步_github_02

305_comon lisp gerneric function初步_简单使用_03

    定义后的这个test-g在调用的时候提示了方法没有创建或者设计。这个,跟比较流行的面向对象的编程就结合到一起了。有对象,有方法。接下来,做一个相应的方法实现。

305_comon lisp gerneric function初步_github_04

    我们做了这个方法实现之后,相应的函数功能得到了实现。不过,值得注意的是,不同于诸如C#等这样的编程语言,这里的这个方法并不是属于test-g的“命名空间”的。

305_comon lisp gerneric function初步_github_05

    增加了一个类型的实现,通过测试可以看得出,两种方式是可以并存的。而且,我们可以根据我们自己的需要继续增加方法的实现。

305_comon lisp gerneric function初步_简单使用_06

    继续增加实现,一是可以让我们看得出这里面的一个便利方式,另一个是能够看得出这里面参数类型处理的一个灵活度。