Skip to content

Instantly share code, notes, and snippets.

View zerg000000's full-sized avatar

Albert Lai zerg000000

View GitHub Profile
@zerg000000
zerg000000 / user.clj
Last active November 12, 2022 23:03
S3 presign (post) example aws-api
(require '[buddy.core.codecs.base64 :as base64]
'[cognitect.aws.util :as util]
'[clojure.string :as str]
'[jsonista.core :as json]
'[cognitect.aws.credentials :as creds]
'[cognitect.aws.http :as http])
(import '[java.util Date])
(defn host-style-bucket-uri [bucket]
(str "http://" bucket ".s3.amazonaws.com/"))
@zerg000000
zerg000000 / deps.edn
Last active September 20, 2019 02:25
OHLC in Clojure
{:deps {net.cgrand/xforms {:mvn/version "0.19.0"}
org.clojure/clojure {:mvn/version "1.10.1"}
org.clojure/core.async {:mvn/version "0.4.500"}}}
;; P.S. 閱讀指引,在 Code Snippet(白色的地方)按Ctrl+Enter看結果。也可以修改後按Ctrl+Enter~
;; 假設我想寫一個簡單的猜字遊戲。
;; 首先,我應該要有一本字典提供生字。
(def dict ["Clojure" "Java" "Go" "Javascript" "Haskell" "Scala" "C" "C++" "Rust" "C#" "Prolog"])
@zerg000000
zerg000000 / graph.clj
Last active February 6, 2019 05:09
answer
(require '[clojure.set :as s])
;; Graph Data from the Picture
(def graph [#{:a :b}
#{:a :d}
#{:a :h}
#{:b :c}
#{:b :d}
#{:d :c}
#{:d :e}
@zerg000000
zerg000000 / project.clj
Created February 9, 2017 01:58
How to clojail a symbol
(defproject test-cljail "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.8.0"]
[clojail "1.0.6"]])
@zerg000000
zerg000000 / bst.clj
Created February 15, 2013 03:35
A clojure implement of binary search tree
(ns com.example.bst)
; using {:val :left :right} as tree data structure
(defn node [val & [left right other]]
{:val val :left left :right right :bag other})
(defn insert [parent i-node]
(let [i-val (:val i-node)
p-val (:val parent)
side (cond (> i-val p-val) :left
@zerg000000
zerg000000 / repl.clj
Last active March 25, 2016 11:11
考起碩士生的小一數學題(ppp)解法 - 香港高登 http://m2.hkgolden.com/view.aspx?message=6307521&type=SW&page=1
(use 'clojure.core.logic)
(require '[clojure.core.logic.fd :as fd])
(def result
(run* [q]
(fresh [a b c d e f g h p ab cd ef gh ppp]
(fd/in a b c d e f g h p (fd/interval 1 9)) ; why not zero?
(fd/in ab cd ef gh (fd/interval 10 99))
(fd/in ppp (fd/interval 100 999))
(fd/eq
; copy from https://github.com/daveray/seesaw/blob/develop/src/seesaw/options.clj
(defrecord Option [name setter getter examples])
(defmacro bean-option
[name-arg target-type & [set-conv get-conv examples]]
(let [[option-name bean-property-name] (split-bean-option-name name-arg)
target (gensym "target")]
`(Option. ~option-name
(fn [~(with-meta target {:tag target-type}) value#]
(-> (frame :title "Why Swing, why?"
:on-close :exit
:content (label :text "Hiya"
:border 5
:background "#888"
:foreground :blue))
pack!
show!)
@zerg000000
zerg000000 / gist:5019830
Last active December 14, 2015 03:19
Convert Java Bean to Clojure map
(bean (java.util.Date.))
{:seconds 40, :date 23, :class java.util.Date,
:minutes 47, :hours 21, :year 113,
:timezoneOffset -480, :month 1, :day 6,
:time 1361627260711}