Доступны ли в Котлине функциональные типы коллекций? - PullRequest
0 голосов
/ 10 октября 2018

Доступны ли функциональные типы коллекций в Котлине?Что-то вроде неизменной очереди или стека в Scala?Если нет, есть ли какая-нибудь хорошая библиотека, которая предоставляет функциональные типы коллекций для Kotlin (основанные на Kotlin's Any)?

Ответы [ 3 ]

0 голосов
/ 11 октября 2018

Библиотека стрелок

Λrrow - библиотека для типизированного функционального программирования в Kotlin.

https://arrow -kt.io/

0 голосов
/ 11 октября 2018

Так что решение было не так уж сложно.Постоянный стек может быть легко реализован с использованием связанного списка, что приводит к сложности O (1) для push () и pop ().Что касается очереди, то, похоже, нет большого выбора, кроме как принять сложность O (n) либо очереди, либо очереди.В таком случае я могу просто использовать один стек в качестве входного (enqueue), а другой - в качестве optput (dequeue).Это будет просто вопрос обращения стека ввода и замены вывода, когда вывод станет пустым - вероятно, лучшая идея - выполнить dequeue ().Это может быть не самый элегантный подход, мне может понадобиться переосмыслить это для большего количества элементов (возможно, добавить очередь / дерево стеков, чтобы ограничить реверс), но для моих текущих потребностей этого должно быть достаточно.Спасибо всем за ваши предложения.

Реализация постоянных стеков - https://github.com/nekomatic/types/blob/graph/src/main/kotlin/com/nekomatic/types/Stack.kt

Реализация постоянных очередей - https://github.com/nekomatic/types/blob/graph/src/main/kotlin/com/nekomatic/types/Queue.kt

0 голосов
/ 11 октября 2018

val myarray: Array<out Any> = arrayOfNull(100)

https://kotlinlang.org/docs/reference/basic-types.html#arrays

Назначение <Any> для <String> неверно, хотя обратное не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...