Skip to content

Instantly share code, notes, and snippets.

View arialdomartini's full-sized avatar

Arialdo Martini arialdomartini

View GitHub Profile
@arialdomartini
arialdomartini / linq+foreach.cs
Created March 11, 2024 17:38
linq_and_foreach.cs
public class VersionTest
{
private readonly ITestOutputHelper _outp;
public VersionTest(ITestOutputHelper outp)
{
_outp = outp;
}
[Fact]
f = 1: 1: zipWith (+) f (tail f)
@arialdomartini
arialdomartini / paolilleither.cs
Last active December 22, 2023 09:18
paolilleither.cs
internal interface Either<L, R>
{
Either<L, B> Bind<B>(Func<R, Either<L, B>> f);
B Match<B>(Func<L, B> whenLeft, Func<R, B> whenRight);
}
internal sealed record Right<L, R> : Either<L, R>
{
@arialdomartini
arialdomartini / swap-marks.el
Last active November 30, 2023 19:54
swap-marks.el
(defun my-dired--first-char-or-ask ()
(if (member (char-after (line-beginning-position)) `(?\s ,dired-marker-char))
(read-char "Which mark are you targeting? ")
(char-after (line-beginning-position))))
(defun my-dired-swap-marks-ask ()
(interactive)
(let ((mark (my-dired--first-char-or-ask)))
(my-dired-swap-marks (string mark))))
@arialdomartini
arialdomartini / conways.md
Last active March 25, 2024 06:58
Conway's Game of Life

Selezionati

No-s

  • No mutable state
  • no loops (for, while)
  • no statements
  • no mouse
  • no primitives
  • no else (only guards)
  • no conditionals
@arialdomartini
arialdomartini / Linq.rs
Created November 13, 2023 06:55
LINQ.rs
content
.lines()
.filter(|line| line.to_lowercase().as_str().contains(query))
.collect()
content
.lines()
.map(|line| line.to_lowercase().as_str())
.filter(|line| line.contains(query))
.collect()
@arialdomartini
arialdomartini / hasPath.hs
Created November 9, 2023 09:51
hasPath.hs
module Main where
type Point = Int
type From = Point
type To = Point
type Segment = (From, To)
type Graph = [Segment]
hasPath :: Graph -> From -> To -> Bool
hasPath [] _ _ = False
@arialdomartini
arialdomartini / TextEditor.cs
Created November 9, 2023 07:31
TextEditor.cs
private delegate IEnumerable<string> ManipulateHistory(IEnumerable<string> history);
ManipulateHistory append(string tail) =>
history => history.Append(new[] { history.Last() + tail });
ManipulateHistory delete(int k) =>
history => history.Append(new[] { delete(history.Last(), k) });
string delete(string last, int k) => last.Substring(0, last.Length - k);
@arialdomartini
arialdomartini / primenumbers.cs
Created August 21, 2023 08:36
Factorization in Prime Numbers
public class PrimeFactorTest
{
[Property]
bool boolean_factorization_in_prime_numbers(PositiveInt positiveNumber)
{
var n = positiveNumber.Item;
var factors = factorize(n);
return factors.AreAllPrime() && factors.Multiplied() == n;
@arialdomartini
arialdomartini / repeatChars.fs
Last active August 13, 2023 08:38
Randomly repeat characters in a string
test
"repeated characters are replaced with one"
{
let randomlyRepeat char =
gen {
let! randomLength = Arb.generate<int> |> Gen.map (fun i -> abs i + 1)
return String(char, randomLength)
}
let arbitrarilyRepeatCharactersInString s =