aboutsummaryrefslogtreecommitdiffstats
path: root/alv-lib/array.moon
blob: 752b1ff4e65befe081c2586fcfc9449d02563368 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import PureOp, Constant, T, Array, val, evt from require 'alv.base'

any = val! / evt!

array = Constant.meta
  meta:
    name: 'array'
    summary: "Construct an array."
    examples: { '(array a b c…)' }
    description: "Produces an array of values."

  value: class extends PureOp
    pattern: any!*0
    type: (args) => Array #args, args[1]\type!

    tick: =>
      args = @unwrap_all!
      @out\set args

{
  :array
}