Skip to content

Instantly share code, notes, and snippets.

@dskecse
dskecse / gist:2db57dcba0ff27305daa54eb3f42a6b1
Created May 11, 2016 15:47
extend function (aka augment)
function extend(destination, source) {
for (var meth in source) {
if (source.hasOwnProperty(meth)) {
destination[meth] = source[meth];
}
}
return destination;
}
@dskecse
dskecse / no_double_raisable.rb
Last active November 8, 2015 06:23
Disallowing double-raise
require 'English'
module NoDoubleRaisable
def error_handled!
$ERROR_INFO = nil
end
def raise(*args)
if $ERROR_INFO && args.first != $ERROR_INFO
warn "Double raise at #{caller.first}, aborting."
@dskecse
dskecse / decorators.py
Last active November 4, 2015 13:25
Decorators in Python
def honorific(klass):
class HonorificClass(klass):
def full_name(self):
return 'Dr. ' + super(HonorificClass, self).full_name()
return HonorificClass
@honorific
class Person(object):
def __init__(self, first, last):
self.first = first
require 'benchmark/ips'
ARRAY = (1..10).to_a
Benchmark.ips do |x|
x.report('each') { sum = 0; ARRAY.each { |n| sum += n }; sum }
x.report('reduce') { ARRAY.reduce(0, :+) }
end
Calculating -------------------------------------
defmodule MyEnum do
def all?([head | tail], func \\ fn x -> x end) do
func.(head) && all?(tail, func)
end
def all?([], _), do: true
def each([], _), do: []
def each([head | tail], func) do
[func.(head), each(tail, func)]
end
defmodule Recursive do
def map([], _func), do: []
def map([head | tail], func), do: [func.(head) | map(tail, func)]
end
defmodule Recursive do
def len([]), do: 0
def len([_head | tail]), do: 1 + len(tail)
end
IO.puts Recursive.len([1, 2, 3])
# => 3
@dskecse
dskecse / libs.exs
Last active October 12, 2015 13:00
:io.format "The number is ~.2f~n", [5.578]
# => "The number is 5.58"
System.get_env "RUBYOPT"
# => "-rauto_gem"
Path.extname "dave/test.exs"
# => ".exs"
System.cwd
@dskecse
dskecse / ConvertStringToAction.hs
Created August 16, 2014 23:08
Implementations of a function that converts a String to an Action
convertStringToAction :: String -> Action
convertStringToAction str = case str of
"Look" -> Look
"New" -> New
otherwise -> Quit
-- guards (охранные выражения)
convertStringToAction' :: String -> Action
convertStringToAction' str | str == "Look" = Look
| str == "New" = New
@dskecse
dskecse / MathFunc.hs
Last active August 29, 2015 14:05
Implementations of math function in Haskell
-- | ln (abs(sin(x))), if x > 5
-- y = | x^2 + a^2, if x <= 5 and a <= 3
-- | x / a + 7.8*a, if x <= 5 and a > 3
y x a = if x > 5
then log (abs (sin (x)))
else
if x <= 5 && a <= 3
then x^2 + a^2
else x / a + 7.8 * a