Возможно ли в Scala определить зависимый тип, такой как список с определенным первым элементом, последним элементом или списком с определенной длиной? - PullRequest
1 голос
/ 28 января 2020

Чтобы прояснить вопрос, существуют языки, поддерживающие зависимые типы, такие как Idris. Scala поддерживает зависимые от пути типы, которые покрывают его часть, но мне не ясно, как можно реализовать такую ​​вещь, как список с определенным значением в качестве первого элемента или длины. Я также знаю о Shapeless. Поэтому мне интересно, существует ли реалистичный c способ кодирования такого типа с использованием любых библиотек Scala для максимальной выразительности. Приложение представляет собой поиск путей в графе между двумя указанными c узлами n1 и n2. Поэтому для повышения безопасности типов программ я пытаюсь указать, что результатом являются списки узлов, начинающиеся с n1 и заканчивающиеся на n2, а также при объединении двух списков, от n1 до n3 и от n3 до n2, где n3 - это узел между тем, как также утверждать через типы, что результирующий список имеет длину, равную сумме объединенных списков. Спасибо

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