Lilac

joined 2 years ago
[–] Lilac@lemmygrad.ml 4 points 2 years ago

Glad to see the USA's plan to support their "Southern Neighbourhood" is via sanctioning them. A classic, foolproof strategy that never causes unjust suffering.

I really like this short video (15:07 in length) of Fred M'membe and Kyeretwie Opoku discussing China vs the West's relationship with Africa and the historical context, and China's history of helping Africa when the West refused.

Although it pains me to say that the US Embassador to the UN is right about something, I can agree that the "choice would be simple".

[–] Lilac@lemmygrad.ml 6 points 2 years ago* (last edited 2 years ago)

Typed functional languages usually do, as mentioned by others. This is form of Algebraic Data Type called a Sum Type (as oppose to a Product type, which is basically a normal struct).

Here's some examples of creating a binary tree in different languages (also Lemmy's code formatter is terrible)

ExamplesHaskell

data Tree a = Empty | Leaf a | Node (Tree a) (Tree a)

F#

type Tree<'a> = Empty | Leaf of 'a | Node of (Tree<'a> * Tree<'a>)

Scala

sealed trait Tree[+A]

case class Empty[A]() extends Tree[A]

case class Leaf[A](a: A) extends Tree[A]

case class Node[A](left: Tree[A], right: Tree[A]) extends Tree[A]

Rust

enum Tree<T> {

​ Empty,

​ Leaf(T),

​ Node(Box<Tree<T>>, Box<Tree<T>>),

}