Skip to content

Instantly share code, notes, and snippets.

View chaotic3quilibrium's full-sized avatar

Jim O'Flaherty chaotic3quilibrium

View GitHub Profile
@chaotic3quilibrium
chaotic3quilibrium / Effective Scala Case Class Patterns.md
Last active April 16, 2024 13:59
Article: Effective Scala Case Class Patterns - The guide I wished I had read years ago when starting my Scala journey

Effective Scala Case Class Patterns

Version: 2022.03.02

Available As

@chaotic3quilibrium
chaotic3quilibrium / org.public_domain.java.utils.Memoizer.java
Last active February 2, 2024 20:16
A Java utility class that caches the resulting value of (expensively?) computing a function taking a single argument
package org.public_domain.java.utils;
import java.util.*;
import java.util.Map.Entry;
import java.util.function.Function;
import java.util.function.Supplier;
/**
* File: org.public_domain.java.utils.Memoizer.java
* <p>
@chaotic3quilibrium
chaotic3quilibrium / org.public_domain.java.utils.Either.java
Last active November 23, 2023 20:21
A Java class representing a value of one of two possible types
package org.public_domain.java.utils;
import java.util.NoSuchElementException;
import java.util.Objects;
import java.util.Optional;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Supplier;
/**
@chaotic3quilibrium
chaotic3quilibrium / Overview.txt
Last active October 26, 2023 15:34
Solution to Java Enum Generics Problem Posted on StackOverflow
//StackOverflow Question: https://stackoverflow.com/q/77362860/501113
//Updated/fixed the 5 code files to incorporate the answer by Turing85: https://stackoverflow.com/users/4216641/turing85
@chaotic3quilibrium
chaotic3quilibrium / org.public_domain.PurelyFunctionalHangman.scala
Last active January 27, 2021 13:58
An update of John deGoes original PurelyFunctionalHangman to ZIO 1.0
package org.public_domain
import zio.console._
import zio.{ExitCode, UIO, URIO, ZIO}
import java.io.IOException
object PurelyFunctionalHangman extends zio.App {
def run(args: List[String]) : URIO[Console, ExitCode] =
hangman.exitCode
@chaotic3quilibrium
chaotic3quilibrium / DIY Scala Enumeration - README.txt
Last active September 13, 2020 22:20
DIY Scala Enumeration (closest possible Java Enum equivalent with guaranteed pattern matching exhaustiveness checking)
README.txt - DIY Scala Enumeration
Copyright (C) 2014-2016 Jim O'Flaherty
Overview:
Provide in Scala the closest equivalent to Java Enum
- includes decorating each declared Enum member with extended information
- guarantees pattern matching exhaustiveness checking
- this is not available with scala.Enumeration
ScalaOlio library (GPLv3) which contains more up-to-date versions of both `org.scalaolio.util.Enumeration` and `org.scalaolio.util.EnumerationDecorated`:
@chaotic3quilibrium
chaotic3quilibrium / Stage01.scala
Created May 5, 2020 20:31
ScalaBoi: Posting a Twitter Thread of Tweets - Stage 1 - Create the Webpage App Backbone
import scalatags.JsDom.all._
val textAreaInput =
textarea.render
val buttonExecuteTransform =
button("Execute Transform").render
val textAreaOutput =
textarea.render
@chaotic3quilibrium
chaotic3quilibrium / TheTenDivisibilities.scala
Created April 24, 2020 15:52
ScalaBoi: A John Conway Puzzler - Part 1 of 2 - Oops, That Didn't Work! Why?!
//C1 - Initial Scala solution attempt
val lettersToDigitsPrefixSize = 3
val letterToDigits =
List(
'a' -> List(1, 3, 7, 9),
'b' -> List(2, 4, 6, 8),
'c' -> List(1, 3, 7, 9),
'd' -> List(2, 4, 6, 8),
@chaotic3quilibrium
chaotic3quilibrium / org.public_domain.scrabble.Bag.scala
Last active June 28, 2016 14:26
Java Code Challenge: Scrabble Sets - Scala Solution
package org.public_domain.scrabble
import scala.util.{Success, Failure, Random, Try}
object Bag {
//copy and paste directly from provided URL at "Tile count and value ordered by count"
// with "Blank" replaced with "_":
// http://scrabblewizard.com/scrabble-tile-distribution/
private val countByTileFull =
"""E 12 1