Skip to content

Instantly share code, notes, and snippets.

View Heimdell's full-sized avatar
🔨
Right tool for the right job

Андреев Кирилл Heimdell

🔨
Right tool for the right job
  • Ульяновск
View GitHub Profile
-module(parse_ini).
-compile(export_all).
% Parser fun :: s() -> {'ok', {a(), s()}} | {'error', reason()}
return(A) -> fun (S) -> {ok, {A, S}} end.
what(Msg, P) ->
fun (S) ->
-module(parse_ini).
-compile(export_all).
% Parser fun :: s() -> {'ok', {a(), s()}} | {'error', reason()}
return(A) -> fun (S) -> {ok, {A, S}} end.
what(Msg, P) ->
fun (S) ->
@Heimdell
Heimdell / parser.erl
Created July 31, 2012 15:02
Alpha-version of parser, predicates coming soon.
-module(parser).
-compile(export_all).
%%%%%%%%%%%%%%%%
%%%% Config %%%%
%%%%%%%%%%%%%%%%
%% Basic configuration utility.
%%
@Heimdell
Heimdell / Structure.rb
Created September 6, 2012 06:22
Methaprogramming is fun
module Structurable
def self.included base
base.class_eval do
def initialize hash
hash.each do |k, v|
temp = v
eval "@#{k} = temp"
self.instance_eval do
@Heimdell
Heimdell / lc.erl
Created September 14, 2012 13:42
Lambda calculus interpreter. Slow realisation.
-module(evaluate).
-compile(export_all).
test_program() ->
[[l, l, l, [var, 2], [var, 0], [var, 1]],
1,
2,
[l, l, [var, 1]]].
@Heimdell
Heimdell / lang0.erl
Created September 15, 2012 16:01
Lambda calculus interpreter (slow)
-module(lang0).
-compile(export_all).
expression() ->
parser:any([
lambda(),
application()
]).
@Heimdell
Heimdell / User.rb
Created September 17, 2012 09:00
User domain
class User
+ For anyone
def create_project :from => params
project = Project.new :from => params
become_owner! :of => project
end
+ For project.owner
@Heimdell
Heimdell / Mine.hs
Last active October 12, 2015 01:58
Minecraft resource calculator
module Mine where
import Data.Ratio
import Control.Monad (join)
import Data.List
import qualified Data.Map as Map
import Data.Map (Map)
second = one "second"
@Heimdell
Heimdell / router.hs
Created November 1, 2012 13:53
"Router as number" prototype
import Control.Monad
rest name nested = resource name -- /users/...
* (root -- /users/
+ identifier -- /users/5/...
* (root -- /users/5/
+ end "show" -- /users/5/show
+ end "edit" -- /users/5/edit
+ nested)) -- /users/5/key/5/<...>
@Heimdell
Heimdell / Instances.hs
Created November 2, 2012 08:11
Types for router
module Instances where
import Control.Monad
import Types
-- For debugging
instance Show Response where
show result = show (code result) ++ ": "
++ response result