A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/skeeto/predd below:

skeeto/predd: Multimethods for Emacs Lisp

Skip to content Navigation Menu Search code, repositories, users, issues, pull requests...

Saved searches Use saved searches to filter your results more quickly

Sign up You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

This repository was archived by the owner on Aug 30, 2021. It is now read-only.

skeeto/predd

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.

;; `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
About

Multimethods for Emacs Lisp

Resources License Stars Watchers Forks

You can’t perform that action at this time.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4