SkillAgentSearch skills...

Predd

Multimethods for Emacs Lisp

Install / Use

/learn @skeeto/Predd
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Elisp Multimethods

This library provides Clojure-style multimethods for Emacs Lisp, supporting multiple dispatch over an ad hoc type hierarchy.

See also: Clojure-style Multimethods in Emacs Lisp.

Example Usage

;; `vector' is the dispatch function for the multimethod `show'

(predd-defmulti show #'vector
  "Return how an animal should respond when shown another animal.")

(predd-defmethod show [:cat :mouse] (a b)
  :chase)

(predd-defmethod show [:cat :dog] (a b)
  :run)

(predd-defmethod show [:dog :cat] (a b)
  :bark)

;; Call the multimethod on some different types

(show :cat :dog)    ; => :run
(show :cat :mouse)  ; => :chase

;; Declare that a tabby is a specific type of cat.

(predd-derive :tabby :cat)

(show :dog :tabby)  ; => :bark
View on GitHub
GitHub Stars30
CategoryDevelopment
Updated1y ago
Forks2

Languages

Emacs Lisp

Security Score

75/100

Audited on Jun 21, 2024

No findings