Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6132209
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 23, 20262026-05-23T17:04:23+00:00 2026-05-23T17:04:23+00:00

(ns protocols-records-learning.core) (defprotocol Hit-points Able to be harmed by environment interaction. (hit? [creature hit-roll]

  • 0
(ns protocols-records-learning.core)

(defprotocol Hit-points
  "Able to be harmed by environment interaction."
  (hit? [creature hit-roll] "Checks to see if hit.")
  (damage [creature damage-roll] "Damages target by damage-roll, negated by per-implementation factors.")
  (heal [creature heal-roll] "Heals creature by specified amount."))

(defrecord Human [ac, health, max-health]
  Hit-points
  (hit? [creature hit-roll] (>= hit-roll ac))
  (damage [creature damage-roll] (if (pos? damage-roll) (Human. ac (- health damage-roll) max-health)))
  (heal [creature heal-roll] (if (pos? heal-roll)
                    (if (>= max-health (+ heal-roll health))
                      (Human. ac max-health max-health)
                      (Human. ac (+ heal-roll health) max-health)))))

(def ryan (atom (Human. 10 4 4)))

(defn hurt-ryan
  "Damage Ryan by two points."
  [ryan]
  (swap! ryan (damage 2)))

Leads to error:

Exception in thread “main” java.lang.IllegalArgumentException: No single method: damage of interface: protocols_records_learning.core.Hit_points found for function: damage of protocol: Hit-points (core.clj:34)

Can somebody explain this error, and what is causing it, and how to properly change the atom?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-23T17:04:24+00:00Added an answer on May 23, 2026 at 5:04 pm

    This should work.

    (defn hurt-ryan
      "Damage Ryan by two points."
      [ryan]
      (swap! ryan damage 2))
    

    Note, the removed pair of parens around damage. The error message is a clunky try to tell you that Clojure didn’t find a version of damage with the arity of 1. The parens around damage try to do exactly that: call damage with one argument (the 2).

    Improvement of the error messages is an ongoing task, which has arrived at protocols, yet.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

One of my protocols is connected to a server, and with the output of
I know WCF supports many WS-* protocols but WS-Eventing does seem to be listed.
Which of the WCF Service Protocols work well with Java? Do the TCP Service
I noticed methods marked optional in several protocols defined in the iPhone SDK, such
Can anyone explain the differences between Protocols and Categories in Objective-C? When do you
How should I correctly reference protocols on a UML class diagram? For example my
We have a need to take dozens of different protocols from systems such as
I'm programming network headers and a lot of protocols use 4 bits fields. Is
I have a view controller class that has to implement several protocols. Too keep
It seems like there used to be way more binary protocols because of the

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.