Hacker News new | past | comments | ask | show | jobs | submit login

A singly-linked list is perfectly possible in safe Rust (https://rust-unofficial.github.io/too-many-lists/third-layou...):

    pub struct List<T> {
        head: Link<T>,
    }

    type Link<T> = Option<Rc<Node<T>>>;

    struct Node<T> {
        elem: T,
        next: Link<T>,
    }
Or you can replace `Rc` with `Box` if you don't need multiple links to each node.

In high-level Dawn, it's basically the same as in Haskell:

    {data v0 List {cons Nil} {cons v0 (v0 List) Cons}}
The first compiler will be quite simple and will produce roughly the equivalent of the above Rust implementation.

As for cyclic doubly-linked lists and arbitrary cyclic graphs, I'll describe how those will work in a future post.




Applications are open for YC Winter 2022

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: