Skip to content

Instantly share code, notes, and snippets.

View sergiilagutin's full-sized avatar

Sergii Lagutin sergiilagutin

  • Alicante, Spain
View GitHub Profile
@sergiilagutin
sergiilagutin / Stock.java
Created March 4, 2015 06:12
Filter collection in Java7, Java8, Scala
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
enum Color {
RED, GREEN;
}
interface Vegetable {
@sergiilagutin
sergiilagutin / Stock.java
Created March 5, 2015 05:33
Map collection (java7, java8, scala)
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
enum Color {
RED, GREEN;
}
class Apple {
@sergiilagutin
sergiilagutin / recursion.scala
Created March 5, 2015 05:53
Scala recursion and tail recursion
import scala.annotation.tailrec
def sum(numbers: Seq[Int]): Int =
if (numbers.isEmpty) 0
else numbers.head + sum(numbers.tail)
def product(numbers: Seq[Int]): Int =
if (numbers.isEmpty) 1
else numbers.head * product(numbers.tail)
@sergiilagutin
sergiilagutin / Factorial.java
Created March 9, 2015 06:19
Java factorial using TDD
public class Factorial {
public int fact(int number) {
int i = 1;
int result = 1;
while (i <= number) {
result = result * i;
i++;
}
return result;
}
@sergiilagutin
sergiilagutin / Factorial.scala
Created March 9, 2015 06:29
Scala factorial using TDD
// step 1
object Factorial {
def fact(n: Int) =
if (n == 2) 2
else if (n == 5) 120
else 1
}
// step 2
object Factorial {
@sergiilagutin
sergiilagutin / Runner.java
Created March 11, 2015 11:06
Java creation of new object
class A {
static {
System.out.println("static A");
}
static {
System.out.println("static A2");
}
@sergiilagutin
sergiilagutin / Runner.java
Created March 12, 2015 18:40
Force ConcurrentModificationException in single-thread application
import java.util.*;
List<String> list = new ArrayList<>();
list.add("one");
list.add("two");
for( String str : list) {
System.out.println(str);
list.add("three")
}
@sergiilagutin
sergiilagutin / worksheet.scala
Created March 16, 2015 06:18
Simple reduce
import scala.annotation.tailrec
def sum(numbers: Seq[Int]): Int =
loopRight(numbers, 0, _ + _)
def product(numbers: Seq[Int]): Int =
loopRight(numbers, 1, _ * _)
def sumTail(numbers: Seq[Int]): Int =
loopLeft(numbers, 0, (acc, i) => acc + i)
@sergiilagutin
sergiilagutin / custom-sorting.js
Created July 22, 2015 06:28
Custom sorting using datatables.js
// sort data in column using string representation on numeric values
// natural order: 1, 3, 2, 0
$(function () {
$.fn.dataTable.ext.order['my-sort'] = function (settings, col) {
return this.api().column(col, {order: 'index'}).nodes().map(function (td, i) {
var text;
switch ($(td).text()) {
case "0":
text = "zero";
@sergiilagutin
sergiilagutin / integration.hs
Created March 9, 2016 17:58
Trapezoidal rule
integration :: (Double -> Double ) -> Double -> Double -> Double
integration f a b = let
step = (b-a)/1000
helper acc 0 x = acc
helper acc cnt x =
helper (acc + ((f x) + (f next))/2 * step) (cnt - 1) next
where next = x + step
in helper 0 1000 a