diff options
| author | s-ol <s+removethis@s-ol.nu> | 2022-01-27 14:14:37 +0000 |
|---|---|---|
| committer | s-ol <s+removethis@s-ol.nu> | 2025-03-02 14:24:49 +0000 |
| commit | ec81cfeeb4797b30da03a631784e7adc86b86a95 (patch) | |
| tree | f619e2d6444242121af48f044f004f6a09e1848d /alv-lib | |
| parent | test logic module (diff) | |
| download | alive-ec81cfeeb4797b30da03a631784e7adc86b86a95.tar.gz alive-ec81cfeeb4797b30da03a631784e7adc86b86a95.zip | |
use base.match.any consistently
Diffstat (limited to 'alv-lib')
| -rw-r--r-- | alv-lib/array-.moon | 19 | ||||
| -rw-r--r-- | alv-lib/osc.moon | 6 | ||||
| -rw-r--r-- | alv-lib/rhythm.moon | 6 | ||||
| -rw-r--r-- | alv-lib/string.moon | 6 | ||||
| -rw-r--r-- | alv-lib/struct-.moon | 11 | ||||
| -rw-r--r-- | alv-lib/time.moon | 6 | ||||
| -rw-r--r-- | alv-lib/vis.moon | 6 |
7 files changed, 28 insertions, 32 deletions
diff --git a/alv-lib/array-.moon b/alv-lib/array-.moon index aeb6820..68557cd 100644 --- a/alv-lib/array-.moon +++ b/alv-lib/array-.moon @@ -1,10 +1,9 @@ -import Array, Op, PureOp, Builtin, Constant, Error, const, sig, evt, T from require 'alv.base' +import Array, Op, PureOp, Builtin, Constant, Error, const, any, T from require 'alv.base' import Cell from require 'alv.cell' import Tag from require 'alv.tag' builtins = require 'alv.builtins' unpack or= table.unpack -any = sig! / evt! get = Constant.meta meta: @@ -16,7 +15,7 @@ get = Constant.meta `i` has to be a constant expression." value: class extends PureOp - pattern: any + const.num + pattern: any! + const.num type: (inputs) => { array, i } = inputs array\type!\get i.result! @@ -36,7 +35,7 @@ set = Constant.meta `array` and `val` may be a !-stream." value: class extends PureOp - pattern: any + const.num + any + pattern: any! + const.num + any! type: (inputs) => { array, i, val } = inputs type = array\type! @@ -64,7 +63,7 @@ head = Constant.meta examples: { '(head array)' } value: class extends PureOp - pattern: any*1 + pattern: any!*1 type: (inputs) => type = inputs[1]\type! @@ -84,7 +83,7 @@ tail = Constant.meta examples: { '(tail array)' } value: class extends PureOp - pattern: any*1 + pattern: any!*1 type: (inputs) => type = inputs[1]\type! @@ -107,7 +106,7 @@ prepend = Constant.meta This is a pure op, so at most one of `array` and `val` may be a !-stream." value: class extends PureOp - pattern: any + any + pattern: any! + any! type: (inputs) => { array, val } = inputs type = array\type! @@ -139,7 +138,7 @@ necessary. `array` and `val` may be a !-stream." value: class extends PureOp - pattern: any + const.num + any + pattern: any! + const.num + any! type: (inputs) => { array, i, val } = inputs type = array\type! @@ -172,7 +171,7 @@ remove = Constant.meta `i` has to be a constant expression." value: class extends PureOp - pattern: any + const.num + pattern: any! + const.num type: (inputs) => { array, i } = inputs type = array\type! @@ -213,7 +212,7 @@ concat = Constant.meta examples: { '(concat arr1 arr2 [arr3…])' } value: class extends PureOp - pattern: any\rep 2 + pattern: any!\rep 2 type: (inputs) => size = 0 type = inputs[1]\type!.type diff --git a/alv-lib/osc.moon b/alv-lib/osc.moon index cf802b7..a75c22f 100644 --- a/alv-lib/osc.moon +++ b/alv-lib/osc.moon @@ -1,4 +1,4 @@ -import Op, PureOp, Constant, SigStream, Input, T, sig, evt from require 'alv.base' +import Op, PureOp, Constant, SigStream, Input, T, sig, any from require 'alv.base' import new_message, add_item from require 'alv-lib._osc' import dns, udp from require 'socket' @@ -47,9 +47,9 @@ send = Constant.meta This is a pure op, so between the values at most one !-stream input is allowed." value: class extends PureOp - pattern: (evt! / sig!)^0 + pattern: any!^0 - full_pattern = -sig['udp/socket'] + sig.str + (evt! / sig!)^0 + full_pattern = -sig['udp/socket'] + sig.str + any!^0 setup: (inputs, scope) => { socket, path, values } = full_pattern\match inputs super values, scope, { diff --git a/alv-lib/rhythm.moon b/alv-lib/rhythm.moon index 582483f..2b92fdc 100644 --- a/alv-lib/rhythm.moon +++ b/alv-lib/rhythm.moon @@ -1,4 +1,4 @@ -import Constant, Op, Input, T, sig, evt from require 'alv.base' +import Constant, Op, Input, T, sig, evt, any from require 'alv.base' -- slower reference implementation bjorklund = (n, k) -> @@ -46,7 +46,7 @@ When fed a bang! trigger, steps forward to the next step on each trigger. When fed a num~ or num! stream, outputs a bang if the corresponding step is on." value: class extends Op - pattern = (evt.bang / sig.num / evt.num) + sig.num + sig.num + pattern = (evt.bang / any.num) + sig.num + sig.num setup: (inputs) => { trig, n, k } = pattern\match inputs @@ -91,7 +91,7 @@ When fed a bang! trigger, steps forward to the next step on each trigger. When fed a num~ or num! stream, outputs a bang if the corresponding step is on." value: class extends Op - pattern = (evt.bang / sig.num / evt.num) + sig.bool*0 + pattern = (evt.bang / any.num) + sig.bool*0 setup: (inputs) => { trig, steps } = pattern\match inputs diff --git a/alv-lib/string.moon b/alv-lib/string.moon index c43dd6a..7508e8d 100644 --- a/alv-lib/string.moon +++ b/alv-lib/string.moon @@ -1,6 +1,4 @@ -import PureOp, Constant, Input, T, sig, evt from require 'alv.base' - -any = sig! / evt! +import PureOp, Constant, Input, T, any from require 'alv.base' str = Constant.meta meta: @@ -8,7 +6,7 @@ str = Constant.meta summary: "Concatenate/stringify values." examples: { '(.. v1 [v2…])', '(str v1 [v2…])' } value: class extends PureOp - pattern: any\rep 1, nil + pattern: any!\rep 1, nil type: T.str tick: => @out\set table.concat [tostring i! for i in *@inputs] diff --git a/alv-lib/struct-.moon b/alv-lib/struct-.moon index 94bd82f..b064e81 100644 --- a/alv-lib/struct-.moon +++ b/alv-lib/struct-.moon @@ -1,6 +1,5 @@ -import Struct, Op, PureOp, Constant, Error, const, sig, evt from require 'alv.base' +import Struct, Op, PureOp, Constant, Error, const, any from require 'alv.base' -any = sig! / evt! key_type = const.str / const.sym get = Constant.meta @@ -13,7 +12,7 @@ get = Constant.meta `key` has to be a constant expression." value: class extends PureOp - pattern: any + key_type + pattern: any! + key_type type: (inputs) => { struct, key } = inputs struct\type!\get key.result! @@ -33,7 +32,7 @@ set = Constant.meta `struct` and `val` may be a !-stream." value: class extends PureOp - pattern: any + key_type + any + pattern: any! + key_type + any! type: (inputs) => { struct, key, val } = inputs type = struct\type! @@ -65,7 +64,7 @@ insert = Constant.meta `struct` and `val` may be a !-stream." value: class extends PureOp - pattern: any + key_type + any + pattern: any! + key_type + any! type: (inputs) => { struct, key, val } = inputs type = struct\type! @@ -98,7 +97,7 @@ remove = Constant.meta `key` has to be a constant expression." value: class extends PureOp - pattern: any + key_type + pattern: any! + key_type type: (inputs) => { struct, key } = inputs type = struct\type! diff --git a/alv-lib/time.moon b/alv-lib/time.moon index a39849a..6852f9e 100644 --- a/alv-lib/time.moon +++ b/alv-lib/time.moon @@ -1,4 +1,4 @@ -import Constant, Error, Op, Input, T, sig, evt from require 'alv.base' +import Constant, Error, Op, Input, T, sig, evt, any from require 'alv.base' import RTNode from require 'alv' import monotime from require 'system' @@ -348,7 +348,7 @@ Creates smooth transitions when `value` changes. super ... @out = T.num\mk_sig! - pattern = -evt.clock + sig.num + (sig.num / evt.num) + pattern = -evt.clock + sig.num + any.num setup: (inputs, scope) => { clock, rate, value } = pattern\match inputs @@ -384,7 +384,7 @@ Delays incoming `evt`s by `delay`. super ... @state = {} - pattern = -evt.clock + (sig.num / evt.num) + (sig! / evt!) + pattern = -evt.clock + any.num + any! setup: (inputs, scope) => { clock, delay, evt } = pattern\match inputs diff --git a/alv-lib/vis.moon b/alv-lib/vis.moon index 9429ef2..941f9e4 100644 --- a/alv-lib/vis.moon +++ b/alv-lib/vis.moon @@ -1,4 +1,4 @@ -import Constant, Op, T, Array, Input, sig, evt from require 'alv.base' +import Constant, Op, T, Array, Input, sig, any from require 'alv.base' bar = Constant.meta meta: @@ -11,7 +11,7 @@ Visualizes `val` as a bar with range `min, max`. `min` defaults to `0` and `max` defaults to `1`." value: class extends Op - pattern = (sig.num / evt.num) + -sig.num + -sig.num + pattern = any.num + -sig.num + -sig.num setup: (inputs, scope) => { val, min, max } = pattern\match inputs if not max @@ -52,7 +52,7 @@ Visualizes `val` as an RGB(A) color with each component in range `0 - range`. value: class extends Op a3 = (Array 3, T.num) a4 = (Array 4, T.num) - color = (sig a3) / (sig a4) / (evt a3) / (evt a4) + color = (any a3) / (any a4) pattern = color + -sig.num setup: (inputs, scope) => { val, max } = pattern\match inputs |
