Programming Clojure 2nd 笔记

Posted by Dillon Peng on February 21, 2017

书中一些例子直接在cider-repl中敲入并不能得到想要的结果,形成文件,存入programming-clojure-2nd项目中。

6.4 Datatypes(gulp vault) p155

  • 6.3 Protocols最后的示例代码存入 io.clj, 跟书上略有区别的是,为了与 cryptovault-complete.clj 中的examples.protocols.io保持一致,将examples.io改成examples.protocols.io

  • 6.4 Datatypes最后部分,从p155src/examples/cryptovault-complete.clj 开始的代码存入 cryptovault-complete.clj, 特别注意,为了演示(gulp vault), cryptovault-complete.clj最后几行为:

  • 这时候,如果emacs在上面两个文件所在的目录,打开cider-repl,导 入cryptovault-complete.clj, 会提示错误: <?prettify?>

user> (clojure.main/load-script "cryptovault-complete.clj")
CompilerException java.io.FileNotFoundException: Could not locate examples/protocols/io__init.class or examples/protocols/io.clj on classpath., compiling:(/study/clojure/programming-clojure-2nd/chapter6/cryptovault-complete.clj:1:1) 
user> 

只要将下面这行: <?prettify?>

(clojure.main/load-script "io.clj")

添加到cryptovault-complete.clj的第一行, 问题解决: <?prettify?>

user> (clojure.main/load-script "cryptovault-complete.clj")
"This is a test of the CryptoVault"
user>