Skip to content

Instantly share code, notes, and snippets.

View lagenorhynque's full-sized avatar
🐬
architecting & managing

Kent OHASHI lagenorhynque

🐬
architecting & managing
View GitHub Profile
rock-paper-scissors.rps-test> (stest/instrument)
[rock-paper-scissors.rps/<-hand]
rock-paper-scissors.rps-test> (stest/check 'rock-paper-scissors.rps/<-hand)
[{:spec #object[cljs.spec.alpha.t_cljs$spec$alpha47112],
:clojure.test.check/ret
{:result
#error {:message "Specification-based check failed", :data {:cljs.spec.alpha/problems [{:path [:ret], :pred (cljs.core/fn [%] (cljs.spec.alpha/int-in-range? 0 3 %)), :val 3, :via [], :in []}], :cljs.spec.alpha/spec #object[cljs.spec.alpha.t_cljs$spec$alpha46905], :cljs.spec.alpha/value 3, :cljs.spec.test.alpha/args (:rock-paper-scissors.rps/scissors), :cljs.spec.test.alpha/val 3, :cljs.spec.alpha/failure :check-failed}},
:seed 1519042432289,
:failing-size 5,
:num-tests 6,
iex(13)> defmodule MyUtil do
...(13)> defmacro my_if(test, do: body) do
...(13)> quote do
...(13)> if unquote(test), do: unquote(body)
...(13)> end
...(13)> end
...(13)> end
{:module, MyUtil,
<<70, 79, 82, 49, 0, 0, 4, 160, 66, 69, 65, 77, 65, 116, 85, 56, 0, 0, 0, 138,
0, 0, 0, 15, 13, 69, 108, 105, 120, 105, 114, 46, 77, 121, 85, 116, 105, 108,
@lagenorhynque
lagenorhynque / clojure-linters.md
Last active November 11, 2022 07:15
Clojure Linters

Clojure Linters


Self-introduction

lagénorhynque /laʒenɔʁɛ̃k/ カマイルカ

(defprofile lagénorhynque
;; def in defn (rare)
(defn f [x]
(def a (* x x))
a)
;; var currentNamespace = {};
;; currentNamespace.f = function f (x) {
;; currentNamespace.a = x * x;
;; return currentNamespace.a;
;; };
(defn sum [xs]
(let [f (fn f [acc xs]
(if (empty? xs)
acc
(recur (+ acc (first xs)) (rest xs))))]
(f 0 xs)))
(sum '(1 2 3)) ; => 6
user> (import '(java.util ArrayList Collections Comparator))
java.util.Comparator
user> (def array-list (doto (ArrayList.)
(.add 1)
(.add 5)
(.add 2)))
#'user/array-list
user> array-list
[1 5 2]
user> (Collections/sort array-list
;; Lisp (common)
(defun my/lisp-mode-defaults ()
(paredit-mode 1)
(rainbow-delimiters-mode 1)
(eldoc-mode 1))
(defun my/lisp-mode-hook ()
(my/lisp-mode-defaults))
#!/usr/bin/env clj
(println "Hello, world!")
@lagenorhynque
lagenorhynque / situated-program-challenge-with-haskell-clojure.md
Last active November 11, 2022 07:15
Situated Program Challenge with Haskell & Clojure

Situated Program Challenge with Haskell & Clojure


Self-introduction

lagénorhynque /laʒenɔʁɛ̃k/ カマイルカ

(defprofile lagénorhynque
{-# LANGUAGE EmptyDataDecls #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeFamilies #-}
module Model where