tvl-depot/emacs/.emacs.d/wpc/polymorphism.el
William Carroll 578ed1ba98 Move move .emacs.d out of configs/shared
Moving all of my Emacs-related files into their own directory at the root of
this repository.
2020-01-30 16:00:29 +00:00

37 lines
854 B
EmacsLisp

;;; polymorphism.el --- Sketching my ideas for polymorphism in Elisp -*- lexical-binding: t -*-
;; Author: William Carroll <wpcarro@gmail.com>
;;; Commentary:
;; Once again: modelled after Elixir.
;;; Code:
;; More sketches of Elisp polymorphism initiative.
;;
;; Two macros:
;; - `defprotocol'
;; - `definstance'
;;
;; Is it just a coincidence that these two macros have the same number of
;;characters or is that fate? I say fate.
;;
;; (defprotocol monoid
;; :functions (empty concat))
;;
;; (definstance monoid vector
;; :empty
;; (lambda () [])
;; :concat
;; #'vector/concat)
;;
;; More sketching...
;; (defun monoid/empty ()
;; "Sketch."
;; (funcall #'(,(monoid/classify)/empty)))
;; (defun monoid/concat (xs)
;; "Sketch."
;; (apply #'(,(monoid/classify)/concat) args))
(provide 'polymorphism)
;;; polymorphism.el ends here