Skip to content

Instantly share code, notes, and snippets.

View knjname's full-sized avatar
πŸ’­
πŸ™

knjname knjname

πŸ’­
πŸ™
View GitHub Profile
(unless (getenv "TERM_PROGRAM")
(progn
(setenv "PATH" (shell-command-to-string "source $HOME/.bashrc && printf $PATH"))
))
(setq exec-path (append exec-path (split-string (getenv "PATH") ":")))
(defun error-ignorable-require (md)
(condition-case err
(require md)
(error nil)))
(defmacro when-mode (modename &rest body)
"Evaluate body when `modename' is require-d successfully. `modename' should not be quoted."
(let
((mode `',modename))
`(when
@knjname
knjname / if-let.el
Last active December 13, 2015 21:39
(defmacro if-let (binding-form when-true when-false)
(destructuring-bind (var-name var-expr) binding-form
`(let ((,var-name ,var-expr))
(if ,var-name
,when-true
,when-false))))
(macroexpand '(if-let (a 3)
a
(+ a a))) ; => (let ((a 3)) (if a a (+ a a)))
@knjname
knjname / diffs-let-and-letaster.el
Created March 20, 2013 16:26
Clear differences between let and let*.
(let ((a 10))
(let ((a 200) (b a))
a ; => 200
b ; => 10
)
(let* ((a 200) (b a))
a ; => 200
b ; => 200
))
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ForkJoinPool;
import java.util.concurrent.RecursiveTask;
public class ForkJoinExampleBySummarizeFileSize {
public static void main(String[] args) {
import java.util.Arrays;
import java.util.stream.Stream;
public class StreamExample {
public static void main(String... args){
Stream.of("1", "Foo", "2", "Bar", "3")
.filter(
str -> {
// To view stacktrace.
new Exception().printStackTrace();
@knjname
knjname / StreamExample.java
Created May 6, 2013 06:31
Add Debugging Pipe
import java.util.Arrays;
import java.util.function.Function;
/**
* Created with IntelliJ IDEA.
* User: owner
* Date: 13/05/06
* Time: 14:41
* To change this template use File | Settings | File Templates.
*/
public class NumberUnderscore {
public static void main(String[] args) {
int a;
a = 222_222;
a = 0b00_00; // binary literal
a = 0_2; // octal
// a = 0_9; illegal octal number
// a = 3333._222; illegal
// a = 2222_.222; illegal
import java.util.function.Function;
public class CurryingExample {
public static void main(String... args){
Function<String, Function<String, String>> concatStr = s -> s2 -> s + s2;
System.out.println(concatStr.apply("Conca").apply("tenated"));
}
}
;; γ‚«γƒͺγƒΌεŒ–
(defn currize [[x & xs] body]
`(fn [~x]
~(if xs
(currize xs body)
`(do ~@body))))
(defmacro currying [params & body]
(currize params body))