Skip to content

Instantly share code, notes, and snippets.

@dnene
dnene / passenger_cab_simulation.kt
Last active October 22, 2021 11:04
This simulates passenger and cab traffic at the pickup point at the airport
package tech.dnene.trials4.airporttaxi
import kotlinx.coroutines.*
import kotlinx.coroutines.channels.ReceiveChannel
import kotlinx.coroutines.channels.produce
import org.slf4j.LoggerFactory
import java.time.Duration
import java.time.LocalDateTime
import java.util.*
package tech.dnene.trials2
import arrow.core.*
typealias Error = String
// Strategy A - sealed classes - Requires support for OO/inheritance
sealed class Abstract<A>
data class Value(val i: Int): Abstract<Int>()
@dnene
dnene / timesequence.kt
Created July 24, 2018 13:48
Time Sequence vs No Sequencce
import kotlin.system.measureTimeMillis
fun main(args: Array<String>) {
val iterations = 10000000
val time1 = measureTimeMillis {
(1..iterations).forEach {
val result: List<Int> = (1..100).filter { it % 2 == 0 }.filter { it % 3 == 0 }.filter { it % 5 == 0 }
}
@dnene
dnene / ApplFuncMonads.kt
Last active April 8, 2018 08:36
Applicatives, Functors and Monads using Kotlin and Arrow
import arrow.core.*
import arrow.data.k
import arrow.syntax.applicative.tupled
import arrow.syntax.functor.map
import arrow.typeclasses.binding
typealias IntFunction = (Int) -> Int
fun IntFunction.map(g: IntFunction) = { it: Int -> this(g(it)) }

Keybase proof

I hereby claim:

  • I am dnene on github.
  • I am dnene (https://keybase.io/dnene) on keybase.
  • I have a public key whose fingerprint is CB17 55C8 224B C815 1551 4E8A BF8F 0B76 0C72 85BB

To claim this, I am signing this object:

@dnene
dnene / myop.py
Created September 3, 2013 06:55
client side helper for operator based syntactic sugar to assist lambda creation
>>> import operator
>>> def myop(optype, second): return lambda first: optype(first,second)
...
>>> myop(operator.lt,60)(45)
True
>>> myop(operator.lt,60)(80)
False
@dnene
dnene / progress_bar.py
Created January 1, 2013 20:07
Progress Bars in Python 3.x
import time
import sys
def do_task():
time.sleep(0.1)
def example_1(n):
steps = n/10
for i in range(n):
do_task()
if i%steps == 0:
@dnene
dnene / input.txt
Created April 15, 2012 21:47
Solution to Google Code Jam Problem - Problem A. Speaking in Tongues
3
ejp mysljylc kd kxveddknmc re jsicpdrysi
rbcpc ypc rtcsra dkh wyfrepkym veddknkmkrkcd
de kr kd eoya kw aej tysr re ujdr lkgc jv
@dnene
dnene / polynomial.py
Created March 21, 2012 05:26
Polynomial library
# Copied from http://pastebin.com/Vg9Reb0Z to preserve from accidental deletion
# A library for manipulating polynomials in arbitrarily many
# indeterminates and of arbitrary degree. This library is 13 lines of
# code, excluding whitespace and comments. This isn't the smartest or
# most efficient way to do things, but I thought it was a cool way to
# demonstrate the power of itertools
#
# Monomials are pairs of a coefficient and a list of exponents;
# polynomials are lists of monomials.
@dnene
dnene / primes.scala
Created March 19, 2012 20:45
Find prime numbers between 1 and 100
package misc
import scala.math
object Prime {
def prime(num: Int) =
num > 1 &&
(2 to (math.sqrt(num) toInt)).forall ( num % _ != 0)
def main(args: Array[String]): Unit = {
1 to 100 filter prime foreach println