Расщепление строки в dhall - PullRequest
0 голосов
/ 08 января 2019

Я играю с dhall и удивляюсь, как я могу реализовать функцию разделения строк вида

λ(text: Text) -> λ(delimiter: Text) -> List Text

Однако, похоже, что у dhall нет понятия / типа для представления отдельных символов. , и в Prelude такой функции нет.

Единственное, что вы можете сделать с текстовыми значениями, это объединить их

Так ... это вообще возможно?

1 Ответ

0 голосов
/ 09 января 2019

В настоящее время это невозможно с существующими встроенными функциями Dhall. Тип Text концептуально непрозрачен, похож на Double. Единственное, что вы можете сделать со значениями типа Text, это объединить их, но вы не можете проанализировать, проанализировать или сравнить их на равенство.

Мое оригинальное обоснование для ограничения Text таким образом заключается в том, что язык поощряет включение строго типизированных представлений в свои входные данные. Например, вместо разделения строки требуется, чтобы строка уже была разбита (то есть ожидается ввод типа List Text вместо Text). Тем не менее, это может измениться в какой-то момент, потому что стандарт не установлен в камне и развивается с течением времени через процесс, описанный здесь:

Кроме того, даже не внося изменений в язык, вы все равно можете поэкспериментировать, расширив язык своими собственными встроенными модулями с помощью API Haskell, следуя этому руководству:

...