Create some new standard library modules
This commit is contained in:
0
modules/collection/build.gradle
Normal file
0
modules/collection/build.gradle
Normal file
7
modules/collection/gradle.properties
Normal file
7
modules/collection/gradle.properties
Normal file
@@ -0,0 +1,7 @@
|
||||
version=0.0.1
|
||||
|
||||
pluginVersion=0.1
|
||||
pluginId=smnp.collection
|
||||
pluginClass=
|
||||
pluginProvider=Bartłomiej Pluta
|
||||
pluginDependencies=
|
||||
@@ -0,0 +1,9 @@
|
||||
package io.smnp.ext
|
||||
|
||||
import org.pf4j.Extension
|
||||
|
||||
@Extension
|
||||
class CollectionModule : LanguageModuleProvider("smnp.collection") {
|
||||
override fun files() = listOf("list.mus")
|
||||
override fun dependencies() = listOf("smnp.lang")
|
||||
}
|
||||
15
modules/collection/src/main/resources/list.mus
Normal file
15
modules/collection/src/main/resources/list.mus
Normal file
@@ -0,0 +1,15 @@
|
||||
function flatten(...lists: list) {
|
||||
return _flatten(lists as list ^ _flatten(list, []), []);
|
||||
}
|
||||
|
||||
function _flatten(list: list, output: list) {
|
||||
list as element ^ {
|
||||
if (typeOf(element) == "list") {
|
||||
output = _flatten(element, output);
|
||||
} else {
|
||||
output = output + [element];
|
||||
}
|
||||
}
|
||||
|
||||
return output;
|
||||
}
|
||||
Reference in New Issue
Block a user