- Kiss type confusion goodbye as you learn to understand complex type signatures:
T[_[_, _], _]
,T[({type λ[A]=F[A, K]})#λ]
. - Level up your ability to write higher-order functions and define combinators to construct larger programs from smaller ones
- Learn how you can use rank-N types to program at a higher-level of abstraction, with strong correctness guarantees
- Discover how existentials help you compose functionality without exploding the size of type signatures
- Master type classes to generate generic, testable code without the tangling and non-local reasoning of inheritance
- Use "functional design patterns" like a boss, including functors, applicatives, monads, profunctors, monoids, and others
- Have your immutable cake and eat it too with "optics" that let you manipulate complex data structures with ease
- Traverse your own data structures without writing any recursive code through powerful, composable, generic recursion schemes
- Model effects with powerful, purely functional techniq
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Example for my blog post at: | |
# https://danijar.com/introduction-to-recurrent-networks-in-tensorflow/ | |
import functools | |
import sets | |
import tensorflow as tf | |
def lazy_property(function): | |
attribute = '_' + function.__name__ |
- Lean and Functional Programming - Bryan Hunter
- A tour of the language landscape - Yan Cui
- Enterprise Tic-Tac-Toe -- A functional approach - Scott Wlaschin
- Learning from Haskell - Venkat Subramaniam
- Computation expression in context : a history of the otter king - Andrea Magnorsky
- Type-Driven Development - Mark Seemann
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import scala.xml._ | |
// To convert a Maven pom.xml to build.sbt: | |
// 1) Place this code into a file called PomToSbt.scala next to pom.xml | |
// 2) Type scala PomtoSbt.scala > build.sbt | |
// The dependencies from pom.xml will be extracted and place into a complete build.sbt file | |
// Because most pom.xml files only refernence non-Scala dependencies, I did not use %% | |
val lines = (XML.load("pom.xml") \\ "dependencies") \ "dependency" map { dependency => | |
val groupId = (dependency \ "groupId").text | |
val artifactId = (dependency \ "artifactId").text |
A primer/refresher on the category theory concepts that most commonly crop up in conversations about Scala or FP. (Because it's embarassing when I forget this stuff!)
I'll be assuming Scalaz imports in code samples, and some of the code may be pseudo-Scala.
A functor is something that supports map
.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<# | |
.SYNOPSIS | |
Find all files excluded from a Visual Studio solution with options to delete. | |
.DESCRIPTION | |
Finds all excluded files in all projects in the provided Visual Studio solution with options to delete the files. | |
.PARAMETER Solution | |
The path to the .sln file |
$/
artifacts/
build/
docs/
lib/
packages/
samples/
src/
tests/
I have moved this over to the Tech Interview Cheat Sheet Repo and has been expanded and even has code challenges you can run and practice against!
\
- Probabilistic Data Structures for Web Analytics and Data Mining : A great overview of the space of probabilistic data structures and how they are used in approximation algorithm implementation.
- Models and Issues in Data Stream Systems
- Philippe Flajolet’s contribution to streaming algorithms : A presentation by Jérémie Lumbroso that visits some of the hostorical perspectives and how it all began with Flajolet
- Approximate Frequency Counts over Data Streams by Gurmeet Singh Manku & Rajeev Motwani : One of the early papers on the subject.
- [Methods for Finding Frequent Items in Data Streams](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.187.9800&rep=rep1&t