functional :: IdFn
functional :: MinFn
functional :: SumFn
core :: union_find
union–find algorithm using an efficient disjoint-set data structurefunctional :: functional_types
This module provides functional type to represents various function forms.
import functional_types
class SumFn
        super Fun2[Int,Int,Int]
        redef fun call(x, y)
        do
                return x + y
        end
end
class MinFn[E: Comparable]
        super Fun2[E,E,E]
        redef fun call(x, y)
        do
                if x < y then
                        return x
                end
                return y
        end
end
class InitArrayFn[E]
        super Fun0[Array[E]]
        var initial_val: nullable E
        redef fun call
        do
                var xs = new Array[E]
                if initial_val != null then
                        xs.push(initial_val)
                end
                return xs
        end
end
class SnakeCaseFn
        super Fun1[String,String]
        redef fun call(x)
        do
                return x.to_snake_case
        end
end
class UpperCaseFn
        super Fun1[String, String]
        redef fun call(x)
        do
                return x.to_upper
        end
end
class IsLetterFn
        super Fun1[Char, Bool]
        redef fun call(c)
        do
                return c.is_letter
        end
end
class AddOneFn
        super Fun1[Int,Int]
        redef fun call(x)
        do
                return x + 1
        end
end
class CharsFn
        super Fun1[String, Iterator[Char]]
        redef fun call(str)
        do
                return str.chars.iterator
        end
end
class LowerThanFn
        super Fun1[Int, Bool]
        var target: Int
        redef fun call(x)
        do
                return x < target
        end
end
class IdFn[E]
        super Fun1[E,E]
        redef fun call(x)
        do
                return x
        end
end
class StrLenFn
        super Fun1[String,Int]
        redef fun call(x)
        do
                return x.length
        end
end
class AddOneProc
        super Proc1[Ref[Int]]
        redef fun call(x)
        do
                x.item += 1
        end
end
fun sum_fn: SumFn
do
        return new SumFn
end
fun min_int_fn: MinFn[Int]
do
        return new MinFn[Int]
end
fun new_int_arr(x: nullable Int): InitArrayFn[Int]
do
        return new InitArrayFn[Int](x)
end
fun snake_case_fn: SnakeCaseFn
do
        return new SnakeCaseFn
end
fun upper_fn: UpperCaseFn
do
        return new UpperCaseFn
end
fun is_letter_fn: IsLetterFn
do
        return new IsLetterFn
end
fun add_one: AddOneFn
do
        return new AddOneFn
end
fun add_one_proc: AddOneProc
do
        return new AddOneProc
end
fun chars_fn: CharsFn
do
        return new CharsFn
end
fun lower_than_fn(x: Int): LowerThanFn
do
        return new LowerThanFn(x)
end
fun id_int: IdFn[Int]
do
        return new IdFn[Int]
end
fun id_str: IdFn[String]
do
        return new IdFn[String]
end
fun str_len: StrLenFn
do
        return new StrLenFn
end
lib/functional/test_utils.nit:18,1--197,3