@@ -4,59 +4,78 @@ import kotlin.math.roundToInt
4
4
5
5
internal fun String.memberFunctions (n : String ): ((Array <Any >) -> Any )? {
6
6
return when (n) {
7
- " take" -> { n -> this .take((n [0 ] as Number ).toInt()) }
8
- " drop" -> { n -> this .drop((n [0 ] as Number ).toInt()) }
9
- " takeLast" -> { n -> this .takeLast((n [0 ] as Number ).toInt()) }
10
- " dropLast" -> { n -> this .takeLast((n [0 ] as Number ).toInt()) }
7
+ " take" -> { nn -> this .take((nn [0 ] as Number ).toInt()) }
8
+ " drop" -> { nn -> this .drop((nn [0 ] as Number ).toInt()) }
9
+ " takeLast" -> { nn -> this .takeLast((nn [0 ] as Number ).toInt()) }
10
+ " dropLast" -> { nn -> this .takeLast((nn [0 ] as Number ).toInt()) }
11
11
else -> null
12
12
}
13
13
}
14
14
15
15
internal fun List <* >.memberFunctions (n : String ): ((Array <Any >) -> Any )? {
16
16
return when (n) {
17
- " first" -> { n -> this .first() ? : error(" empty list" ) }
18
- " last" -> { n -> this .last() ? : error(" empty list" ) }
19
- " take" -> { n -> this .take((n[0 ] as Number ).toInt()) }
20
- " drop" -> { n -> this .drop((n[0 ] as Number ).toInt()) }
21
- " takeLast" -> { n -> this .takeLast((n[0 ] as Number ).toInt()) }
22
- " dropLast" -> { n -> this .takeLast((n[0 ] as Number ).toInt()) }
23
- " map" -> { n -> @Suppress(" UNCHECKED_CAST" ) val lambda = (n[0 ] as (Any ) -> Any ); this .map { lambda(it!! ) } }
24
- " filter" -> { n ->
25
- val lambda = (n[0 ] as (Any ) -> Any ); this .filter { (lambda(it!! ) as Double ).roundToInt() != 0 }
17
+ " first" -> { _ -> this .first() ? : error(" empty list" ) }
18
+ " last" -> { _ -> this .last() ? : error(" empty list" ) }
19
+ " take" -> { nn -> this .take((nn[0 ] as Number ).toInt()) }
20
+ " drop" -> { nn -> this .drop((nn[0 ] as Number ).toInt()) }
21
+ " takeLast" -> { nn -> this .takeLast((nn[0 ] as Number ).toInt()) }
22
+ " dropLast" -> { nn -> this .takeLast((nn[0 ] as Number ).toInt()) }
23
+ " map" -> { nn -> @Suppress(" UNCHECKED_CAST" ) val lambda = (nn[0 ] as (Any ) -> Any ); this .map { lambda(it!! ) } }
24
+ " filter" -> { nn ->
25
+ @Suppress(" UNCHECKED_CAST" , " UNCHECKED_CAST" ) val lambda =
26
+ (nn[0 ] as (Any ) -> Any ); this .filter { (lambda(it!! ) as Double ).roundToInt() != 0 }
26
27
}
27
28
28
- " max" -> { n ->
29
+ " max" -> { _ ->
29
30
@Suppress(" UNCHECKED_CAST" )
30
31
(this as List <Comparable <Any >>).max()
31
32
}
32
- " min" -> { n ->
33
+
34
+ " min" -> { _ ->
33
35
@Suppress(" UNCHECKED_CAST" )
34
36
(this as List <Comparable <Any >>).min()
35
37
}
36
- " maxBy" -> { n ->
37
- @Suppress(" UNCHECKED_CAST" ) val lambda = (n[0 ] as (Any ) -> Any ); this .maxByOrNull { lambda(it!! ) as Comparable <Any > } ? : error(" no max" )
38
+
39
+ " maxBy" -> { nn ->
40
+ @Suppress(" UNCHECKED_CAST" ) val lambda =
41
+ (nn[0 ] as (Any ) -> Any ); this .maxByOrNull {
42
+ @Suppress(" UNCHECKED_CAST" )
43
+ lambda(it!! ) as Comparable <Any >
44
+ } ? : error(" no max" )
38
45
}
39
46
40
- " minBy" -> { n ->
41
- @Suppress(" UNCHECKED_CAST" ) val lambda = (n[0 ] as (Any ) -> Any ); this .minByOrNull { lambda(it!! ) as Comparable <Any > } ? : error(" no max" )
47
+ " minBy" -> { nn ->
48
+ @Suppress(" UNCHECKED_CAST" ) val lambda =
49
+ (nn[0 ] as (Any ) -> Any ); this .minByOrNull {
50
+ @Suppress(" UNCHECKED_CAST" )
51
+ lambda(it!! ) as Comparable <Any >
52
+ } ? : error(" no max" )
42
53
}
43
54
44
- " sorted" -> { n ->
55
+ " sorted" -> { _ ->
45
56
@Suppress(" UNCHECKED_CAST" )
46
57
(this as List <Comparable <Any >>).sorted()
47
58
}
48
- " sortedBy" -> { n ->
49
- @Suppress(" UNCHECKED_CAST" ) val lambda = (n[0 ] as (Any ) -> Any ); this .sortedBy { lambda(it!! ) as Comparable <Any > }
59
+
60
+ " sortedBy" -> { nn ->
61
+ @Suppress(" UNCHECKED_CAST" ) val lambda =
62
+ (nn[0 ] as (Any ) -> Any ); this .sortedBy {
63
+ @Suppress(" UNCHECKED_CAST" )
64
+ lambda(it!! ) as Comparable <Any >
65
+ }
50
66
}
51
67
52
- " sortedByDescending" -> { n ->
53
- @Suppress(" UNCHECKED_CAST" ) val lambda = (n[0 ] as (Any ) -> Any ); this .sortedByDescending { lambda(it!! ) as Comparable <Any > }
68
+ " sortedByDescending" -> { nn ->
69
+ @Suppress(" UNCHECKED_CAST" ) val lambda = (nn[0 ] as (Any ) -> Any ); this .sortedByDescending {
70
+ @Suppress(" UNCHECKED_CAST" )
71
+ lambda(it!! ) as Comparable <Any >
72
+ }
54
73
}
55
74
56
- " reversed" -> { n -> this .reversed() }
57
- " zip" -> { n ->
75
+ " reversed" -> { _ -> this .reversed() }
76
+ " zip" -> { nn ->
58
77
@Suppress(" UNCHECKED_CAST" )
59
- this .zip(n [0 ] as List <Any >).map { listOf (it.first, it.second) }
78
+ this .zip(nn [0 ] as List <Any >).map { listOf (it.first, it.second) }
60
79
}
61
80
62
81
else -> null
0 commit comments