lit-lang/lit

Investigate immutability check

Opened this issue · 0 comments

How about using a ~ prefix to denote mutable variables (and make all vars immutable by default?)?

I experimented with ChatGPT a bit:

fn bubble_sort(~vec) {
    let len = ~vec.len()
    let ~swapped = true
    
    while swapped {
        swapped = false
        for i in 1..len {
            if ~vec[i - 1] > ~vec[i] {
                let temp = ~vec[i - 1]
                ~vec[i - 1] = ~vec[i]
                ~vec[i] = temp
                swapped = true
            }
        }
    }
}

fn main!() {
    let ~unsorted = [4, 2, 7, 1, 9, 5]
    
    println("Unsorted Array: {unsorted}")
    
    let sorted = bubble_sort(unsorted)
    
    println("Sorted Array: {sorted}")
}

main!()