@Lilac@lemmygrad.ml
link
fedilink
6
edit-2
10M

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)

Examples

Haskell

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>>),

}

Rust Programming
!rust
Create a post
  • 0 users online
  • 1 user / day
  • 3 users / week
  • 7 users / month
  • 45 users / 6 months
  • 2.2K subscribers
  • 399 Posts
  • 429 Comments
  • Modlog