markdown Clojure clj中协议和记录的简要示例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown Clojure clj中协议和记录的简要示例相关的知识,希望对你有一定的参考价值。

;; A protocol with a single method
(defprotocol Waggable
  (wag [x]))

;; A record that implements that protocol
(defrecord Dog [name]
  Waggable
  (wag [x]
    (prn (str (:name x)
              " wagged their tail"))))

;; Call that method
(wag (->Dog "Derek"))

;; A record that doesn't implement the protocol
(defrecord Cat [name])

;; Extended to implement the protocol
(extend-protocol Waggable
  Cat
  (wag [x]
    (prn "Cats don't wag")))

;; And then call that method
(wag (->Cat "Arnold"))

以上是关于markdown Clojure clj中协议和记录的简要示例的主要内容,如果未能解决你的问题,请参考以下文章

markdown 列表交叉合并类似Python中的zip功能(clojure clj ruby​​ scala map vector list)

Clojure 1.9命令行工具 - 找不到命令clj.sh

Clojure - 在没有project.clj的情况下启动REPL

Clojure ISO 8601当前日期和clj时间

clojure 中的惯用配置管理?

在 Clojure 中使用 repl 而不是 println