1

以下がうまくいかない理由を理解しようとして、私は多くの「楽しみ」を持っています。srcプロジェクトのディレクトリでnREPL セッションを開始した後lein、次のことを行いました。

user> (require 'animals.core)
nil
user> (animals.core/-main)
"Welcome to Animals!"
nil
user> (require 'animals.animal)
nil
user> (extends? animals.animal/Animal animals.animal/Dog)
CompilerException java.lang.RuntimeException: No such var: animals.animal/Dog, compiling:(NO_SOURCE_PATH:1:1)

Lein チュートリアルを読んで、私の基本的な理解は、ソースを次のように配置する必要があるということです。

- src/
|____ animals/
      |_______ core.clj
      |_______ animal.clj

以下の animal の内容は次のようになります。

(ns animals.animal)

(defprotocol Animal
  "A protocol for animal move behavior."
  (move [this] "Method to move."))

(defrecord Dog [name species]
  Animal
  (move [this] (str "The " (:name this) " walks on all fours.")))

(defrecord Human [name species]
  Animal
  (move [this] (str "The " (:name this) " walks on two legs.")))

(defrecord Arthropod [name species]
  Animal
  (move [this] (str "The " (:name this) " walks on eight legs.")))

(defrecord Insect [name species]
  Animal
  (move [this] (str "The " (:name this) " walks on six legs.")))

Dog評価Animalの結果エラーが発生しなかったのに、評価しようとすると実行時例外が発生するのはなぜですか? これを正しく行うにはどうすればよいでしょうか。

4

1 に答える 1