/** * A persistent data structure does preserve the previous version of itself when being modified and is therefore effectively immutable. Fully persistent data structures allow both updates and queries on any version. * */ private void createCollection() { System.out.println(); System.out.println("createList"); List<Integer> list1 = List.of(1, 2, 3); System.out.println(list1); // print List(1, 2, 3) List<Integer> list2 = list1.tail().prepend(0); System.out.println(list2); // print List(0, 2, 3) System.out.println(); System.out.println("createQueue"); Queue<Integer> queue = Queue.of(1, 2, 3) .enqueue(4) .enqueue(5); System.out.println(queue); // print Queue(1, 2, 3, 4, 5) }
@Encoding.Naming(value = "setEntries*") @Encoding.Init void setEntries( final Iterable<Tuple2<K, V>> entries) { this.map = HashMap.ofEntries(entries); }
@Encoding.Naming(standard = Encoding.StandardNaming.PUT) @Encoding.Init void put( final K key, final V value) { this.map = this.map.put(key, value); }
@Encoding.Naming(value = "setIterable*") @Encoding.Init void setIterable( final Iterable<T> elements) { this.set = LinkedHashSet.ofAll(elements); }
@Encoding.Naming(value = "setIterable*") @Encoding.Init void setIterable( final Iterable<Character> elements) { this.string = CharSeq.ofAll(elements); }
@Encoding.Naming(standard = Encoding.StandardNaming.ADD) @Encoding.Init void add( final T element) { this.array = this.array.append(element); }
@Encoding.Naming(standard = Encoding.StandardNaming.ADD_ALL) @Encoding.Init void addAll( final Iterable<T> element) { this.linear_seq = this.linear_seq.appendAll(element); }
@Encoding.Naming(value = "setEntries*") @Encoding.Init void setEntries( final Iterable<Tuple2<K, V>> entries) { this.map = LinkedHashMap.ofEntries(entries); }