Skip to content

Instantly share code, notes, and snippets.

vindarel vindarel

Block or report user

Report or block vindarel

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@vindarel
vindarel / common-lisp-VS-clojure.md
Created Nov 26, 2019
Notes on Common Lisp VS Clojure
View common-lisp-VS-clojure.md

Interactive development

I have semi-frequent occasion to work in Clojure, but Clojure lacks some features of Common Lisp that I consider important. The most important of these is that Common Lisp, like Smalltalk, but unlike most other languages, including Clojure, is designed from the ground up to support developing a program interactively while it runs. I want to see if I can have Clojure for those cases where it's the right tool, without losing the programming-as-teaching features of Common Lisp that I miss when working in other languages.

I know someone is probably going to object that Clojure, too, is designed to support interactive development; my answer is: no, it isn't. Not in the sense I'm talking about.

As an example of what I mean, consider the standard Common Lisp generic function UPDATE-INSTANCE-FOR-REDEFINED-CLASS. This function is part of a standard protocol in Common Lisp that enables your program to automatically update existing instances of previously-defined classes to properly confor

@vindarel
vindarel / fukamachi-reader-macros-asdf.md
Last active Aug 23, 2018
8arrow-reader-macros-asdf
View fukamachi-reader-macros-asdf.md

From E. Fukamachi's blog: http://blog.8arrow.org/entry/2018/06/24/214706

Enable reader macros throughout the project

Recently the landing page of our new service "Pocket Change Pay" has been released.

https://pay.pocket-change.jp/

Pocketpay is a platform that can make original electronic money . There is Pokethe like the mechanism that can also exchange money in the platform.

@vindarel
vindarel / ql-gitify.lisp
Created Apr 2, 2018 — forked from death/ql-gitify.lisp
Facilitate creating Git repositories for third-party Quicklisp projects.
View ql-gitify.lisp
(defpackage #:snippets/ql-gitify
(:documentation
"Facilitate creating Git repositories for third-party Quicklisp
projects.")
(:use #:cl)
(:import-from #:constantia #:out #:print-table)
(:import-from #:split-sequence #:split-sequence)
(:import-from #:alexandria #:starts-with-subseq #:hash-table-plist)
(:import-from #:ql #:qmerge)
(:export
@vindarel
vindarel / get-lisp-dependencies.lisp
Created Mar 8, 2018 — forked from svetlyak40wt/get-lisp-dependencies.lisp
A helper to gather all lisp system's dependencies
View get-lisp-dependencies.lisp
(ql:quickload :fset)
(defun get-dependencies (system)
"Returns a set with all dependencies of a given system.
System should be loaded first."
(labels ((normalize (name)
(etypecase name
(string (string-downcase name))
(symbol (normalize (symbol-name name)))
(list
@vindarel
vindarel / debugging common lisp - slime interactivity.md
Last active Apr 21, 2017
Awesome example on Common Lisp's interactive debugger (Slime) advanced interactivity
View debugging common lisp - slime interactivity.md

Awesome comment: https://www.reddit.com/r/programming/comments/65ct5j/a_pythonist_finds_a_new_home_at_clojure_land/dg9p8rk/

That's not an interpreter. A REPL is not the same as a Lisp interpreter. REPL means read eval print loop. EVAL can be implemented by a compiler or an interpreter. Common Lisp has both and mixed implementations with both compiler and interpreter.

A Lisp interpreter is executing Lisp code directly. Clojure does not have an Interpreter.

https://clojure.org/reference/evaluation

Clojure has no interpreter.
@vindarel
vindarel / discover-yafolding
Created Nov 17, 2014
Discover yafolding commands
View discover-yafolding
;; Goal: have a magit-like menu to discover yafolding commands.
;; we use Mickey's version https://github.com/mickeynp/discover.el
;; We get a shorcut (M-f) which displays a list of actions associated with a hot key:
;; h will be for `yafolding-hide-element`, H to hide all, s to show the element, etc.
;; evil-mode users will need:
(evil-set-initial-state 'makey-key-mode 'emacs)
You can’t perform that action at this time.