Skip to content

Instantly share code, notes, and snippets.

Divyansh Prakash divs1210

Block or report user

Report or block divs1210

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
@divs1210
divs1210 / diff_engine.py
Last active Aug 29, 2015
Babbage's Difference Engine in Python
View diff_engine.py
def diff(seq):
""" [1,4,9] => [3,5] """
return map(lambda x,y: x-y, seq[1:], seq[:-1])
def triangle(seq):
""" [1,4,9] => [[1,4,9],[3,5],[2]] """
diffs=[seq]
for i in range(1, len(seq)):
diffs.append(diff(diffs[i-1]))
return diffs
@divs1210
divs1210 / diff_engine.clj
Last active Aug 29, 2015
Babbage's Difference Engine in Clojure
View diff_engine.clj
(defn diffs
"(diffs [1 4 9]) => (3 5)"
[alist]
(map - (rest alist) alist))
(defn infer
"(infer [1 4 9]) => (1 4 9 16 25 ...)"
[pattern]
(->> (take (count pattern) (iterate diffs pattern))
(map last) reverse
View maya.clj
(ns maya)
(defmacro math->
" (math-> 1 + 5 * 2 / 3) ;=> (-> 1 (+ 5) (* 2) (/ 3)) ;=> 4 "
[exp & f-x-pairs]
(if (even? (count f-x-pairs))
`(-> ~exp
~@(for [[f x] (partition 2 f-x-pairs)]
(list f x)))
(throw (Exception. "f-x-pairs should be even."))))
@divs1210
divs1210 / factorial.clj
Last active Aug 29, 2015
Simple made Easy- A Taste of Clojure for the Cjurious
View factorial.clj
(ns factorial)
;;----------------
;;A Simple Problem
;;----------------
;The factorial function can be written as:
; factorial(n) = 1 * 2 * 3 * ... * n
;
;Let's take the case of factorial(5):
; 1 * 2 * 3 * 4 * 5
;
View impala.clj
(ns impala)
;; ===============
;; IMPALA
;; -subleq oisc-
;; ---------------
;; github/divs1210
;; ===============
;; Primitives
;; ==========
@divs1210
divs1210 / gitget.py
Last active May 8, 2019
Download a specific folder from a github repo
View gitget.py
#!/usr/bin/python
"""
Download a specific folder from a github repo:
gitget.py https://github.com/divs1210/kilvish/tree/master/examples/bricksnball
"""
__author__ = 'Divyansh Prakash'
import sys
import subprocess
View day6.clj
(ns aoc.day6
(:require [clojure.core.reducers :as r]
[clojure.set :as cset]
[clojure.string :as s]))
(defn part-1-input []
(.trim (slurp "resources/day6-part1-input")))
(defn str->point
"(str->point \"0,0\") => [0 0]"
@divs1210
divs1210 / protocols.clj
Last active Apr 6, 2016
This works fine for some time, but then I start getting an exception saying: "No implementation of method: :search of protocol: #'some.thing/ISearchEngine found for class: some.thing.SearchEngine"
View protocols.clj
(defprotocol ISearchEngine
"Search the web"
(search [engine term] "Search the web for a single (one-word) term."))
(defrecord SearchEngine [url]
ISearchEngine
(search [this term]
(-> (str (:url this) term)
http/get deref :body)))
@divs1210
divs1210 / hmap.clj
Last active Feb 5, 2018
Immutable hashmap implemented as a Clojure macro
View hmap.clj
(ns hmap)
(defmacro hmap [& kvs]
"Returns an immutable hashmap.
Keys must be compile-time constants."
(if (even? (count kvs))
(let [tups (partition 2 kvs)
keys (mapv first tups)
kvs+ (concat kvs [::keys keys])]
`(fn [k#]
@divs1210
divs1210 / SLIP.py
Last active Aug 28, 2018
helps escape the Python's clutch
View SLIP.py
import types
# Helpers
# =======
def _obj():
'''Dummy object'''
return lambda: None
_FILLER = _obj()
You can’t perform that action at this time.