Instantly share code, notes, and snippets.

🎯
Elixir/OTP

Jakub Godawavysogot

🎯
Elixir/OTP
• Sort options
Created Oct 16, 2019
Ruby lambda factorial
View ruby-lambda-factorial.rb
 IS_ZERO = -> (x) { x == 0 } ONE = -> { 1 } ONE_LESS = -> (x) { x - 1 } ITSELF = -> (x) { x } COND = -> (cond) { -> (doit) { -> (doelse) { cond ? doit.(nil) : doelse.(nil) } } } MULT = -> (x) { -> (y) { x * y } } puts( -> myself { -> (n) {
Last active Sep 26, 2019
Odd elements of list in Elixir
View 01_odd_elements.ex
 defmodule Solution do def odds(elements) do Enum.with_index(elements) |> Enum.map_reduce([], fn {element, index}, acc -> case rem(index, 2) == 1 do true -> {{element, index}, acc ++ [element]} _ -> {{element, index}, acc} end end) |> elem(1)
Created Sep 16, 2017
Generates RSS file from the files in a folder with subfolders
View podcast_generator.rb
 #!/usr/bin/env ruby -wKU # # based on a script # by Kelan Champagne # http://kelan.io require 'date' # Config values podcast_title = "Title"
Created Mar 16, 2017
YouTube Transcript to SRT - Ruby script
 # Paste your transcript between the quotes # and run # ruby youtube-transcript-to-srt.rb > subtitles.srt transcript = "0:00 Hello and welcome 0:05 This is a very nice story 0:10 and it needs subtitles" times = transcript.split("\n").map {|x| x[0..4].strip.rjust(5, '0')} times << times[-1]
Last active Aug 29, 2015
Arduino – multiple output control with timeline
View MultipleOutputTimeline.ino
 /* Algorithm based on delay for running different outputs in given LOW/HIGH intervals This code is meant to control the relay grid behind a washing machine and it can be used for many other devices. By Jakub Godawa (vysogot) */ /* addresses for Arduino Uno (!setup properly for Arduino Mega or other!) */ const int r1out = A0; const int r2out = A1; const int s3out = A2; const int s4out = A3; const int s5out = A4;
Created Jul 16, 2011
Using FilterMatcher example
View people_matcher.rb
 class PeopleMatcher include FilterMatcher attr_reader :db def initialize(db, input) @db, @input = db, input end def match
Created Jul 16, 2011
FilterMatcher module
View filter_matcher.rb
 module FilterMatcher # # define filter in a class that uses this module # named like: # - name_filter # - age_filter # # they should a filtered array #
Created Jul 16, 2011
FilterMatcher test suite
View filter_matcher_test.rb
 require 'test/unit' class PeopleMatcherTest < Test::Unit::TestCase def setup @db = [ { :id => 1, :name => "John", :age => 33, :homepage => "www.johny.com", :matched => false }, { :id => 2, :name => "Mike", :age => 30, :homepage => "www.mikes.com", :matched => false }, { :id => 3, :name => "Johny", :age => 25, :homepage => "www.johny.com", :matched => false }, { :id => 4, :name => "Mike", :age => 30, :homepage => "www.realmike.com", :matched => false }, { :id => 5, :name => "Dan", :age => 25, :homepage => "www.danny.com", :matched => false },
Created Jul 7, 2011
Cartesian product
View fast_cartesian_product.rb
 def cartprod(*args) result = [[]] while [] != args t, result = result, [] b, *args = args t.each do |a| b.each do |n| result << a + [n] end end
Created Jul 7, 2011
Fast, fully iterative permute sets
View fast_permute_sets.rb
 def permute(*args) # filter the arguments args.reject! {|x| !x.is_a?(Array) || x.empty?} # get the number of all combinations total = args.inject(1) {|total, array| total * array.size} # prepare the small_cycles array to know how many times # one element should be repeated in a loop
You can’t perform that action at this time.