Edit

kc3-lang/kc3/test/ikc3/def.kc3

Branch :

  • test/ikc3/def.kc3
  • quote def zero = 0
    def zero = 0
    quote zero
    zero
    quote def one_two_three = [1, 2, 3]
    def one_two_three = [1, 2, 3]
    quote one_two_three
    one_two_three
    quote def double = fn (x) { x * 2 }
    def double = fn (x) { x * 2 }
    quote double
    double
    quote double(200)
    double(200)
    quote double(zero)
    double(zero)
    quote def double_tuple = macro (x) do
      quote do
        x = ^ unquote(x)
        {x, x}
      end
    end
    def double_tuple = macro (x) do
      quote do
        x = ^ unquote(x)
        {x, x}
      end
    end
    quote double_tuple
    double_tuple
    quote double_tuple(200)
    double_tuple(200)
    quote double_tuple(zero)
    double_tuple(zero)
    quote double_tuple(one_two_three)
    double_tuple(one_two_three)
    quote def reverse = fn {
      (x) { reverse(x, []) }
      ([], acc) { acc }
      ([a | b], acc) { reverse(b, [a | acc]) }
    }
    def reverse = fn {
      (x) { reverse(x, []) }
      ([], acc) { acc }
      ([a | b], acc) { reverse(b, [a | acc]) }
    }
    quote reverse
    reverse
    quote reverse([1, 2, 3])
    reverse([1, 2, 3])
    quote def reverse = fn {
      (x) { reverse(x, []) }
      ([], acc) { [:reversed | acc] }
      ([a | b], acc) { reverse(b, [a | acc]) }
    }
    def reverse = fn {
      (x) { reverse(x, []) }
      ([], acc) { [:reversed | acc] }
      ([a | b], acc) { reverse(b, [a | acc]) }
    }
    quote reverse
    reverse
    quote reverse([1, 2, 3])
    reverse([1, 2, 3])
    quote def reverse = fn {
      (x) { reverse(x, []) }
      ([], acc) { acc }
      ([a | b], acc) { reverse(b, [a | acc]) }
    }
    def reverse = fn {
      (x) { reverse(x, []) }
      ([], acc) { acc }
      ([a | b], acc) { reverse(b, [a | acc]) }
    }
    quote reverse
    reverse
    quote reverse([1, 2, 3])
    reverse([1, 2, 3])
    quote def reverse = fn (x) { List.reverse(x) }
    def reverse = fn (x) { List.reverse(x) }
    quote reverse
    reverse
    quote reverse([1, 2, 3])
    reverse([1, 2, 3])
    quote module()
    module()
    quote search_modules()
    search_modules()
    quote reverse
    reverse
    quote def reverse = fn (x) { [:reversed | List.reverse(x)] }
    def reverse = fn (x) { [:reversed | List.reverse(x)] }
    quote reverse
    reverse
    quote reverse([1, 2, 3])
    reverse([1, 2, 3])
    quote module()
    module()
    quote search_modules()
    search_modules()
    quote reverse
    reverse
    quote def reverse = fn (x) { List.reverse(x) }
    def reverse = fn (x) { List.reverse(x) }
    quote reverse
    reverse
    quote reverse([1, 2, 3])
    reverse([1, 2, 3])
    quote module()
    module()
    quote search_modules()
    search_modules()
    quote reverse
    reverse