mirror of
https://github.com/fluencelabs/aqua.git
synced 2024-12-04 22:50:18 +00:00
41 lines
921 B
Plaintext
41 lines
921 B
Plaintext
aqua StreamMapAbilities
|
|
|
|
export streamMapAbilityTest
|
|
|
|
ability Streams:
|
|
stream: *string
|
|
map: %string
|
|
|
|
ability Adds:
|
|
addToStream(s: string)
|
|
addToMap(k: string, v: string)
|
|
|
|
func addToStreamClosure(str: *string) -> string -> ():
|
|
cl = func (s: string):
|
|
str <<- s
|
|
<- cl
|
|
|
|
func addToMapClosure(str: %string) -> string, string -> ():
|
|
cl = func (k: string, v: string):
|
|
str <<- k, v
|
|
<- cl
|
|
|
|
func addTo{Streams}() -> Adds:
|
|
addStream = addToStreamClosure(Streams.stream)
|
|
addMap = addToMapClosure(Streams.map)
|
|
adds = Adds(addToStream = addStream, addToMap = addMap)
|
|
<- adds
|
|
|
|
func add{Adds}(s: string, k: string):
|
|
Adds.addToStream(s)
|
|
Adds.addToMap(k, k)
|
|
|
|
func streamMapAbilityTest() -> []string, []string:
|
|
stream: *string
|
|
map: %string
|
|
ab = Streams(stream = stream, map = map)
|
|
adds <- addTo{ab}()
|
|
add{adds}("one", "1")
|
|
add{adds}("two", "2")
|
|
add{adds}("three", "3")
|
|
<- stream, map.keys() |