Преобразование строки в верхний регистр

Elm:
Преобразование строки в верхний регистр

Как:

В Elm нет встроенной функции capitalize, но её можно легко создать:

import String exposing (toUpper, toLower, left, dropLeft)

capitalize : String -> String
capitalize text =
    if String.isEmpty text then
        ""
    else
        toUpper (left 1 text) ++ toLower (dropLeft 1 text)

main =
    String.words "hello elm world" |> List.map capitalize |> String.join " "
    -- Вывод: "Hello Elm World"

Подробный Разбор

Elm предпочитает ясность и не включает в основные библиотеки общие операции со строками, такие как capitalize. Традиционно вы либо создавали своё собственное решение, либо использовали стороннюю библиотеку для расширения возможностей работы со строками.

Основная библиотека String в Elm предоставляет toUpper и toLower, которые обрабатывают преобразование всей строки. Для приведения к заглавному виду берётся первый символ с помощью left, преобразуется в верхний регистр с помощью toUpper, а затем присоединяется к остатку строки, преобразованной в нижний регистр с помощью toLower. Оставшаяся часть строки извлекается с помощью dropLeft, что позволяет избежать воздействия на первый символ.

Хотя стандартные библиотеки Elm могут не иметь встроенной функции capitalize, такое решение гарантирует минималистичное и производительное ядро, оставляя такие конкретные утилиты для реализации пользователями или дополнительных пакетов.

К альтернативам относится использование полноценных пакетов для манипуляции со строками, таких как elm-string-extra, которые включают функцию capitalize среди прочих полезных операций со строками:

import String.Extra exposing (capitalize)

main =
    String.words "hello elm world" |> List.map capitalize |> String.join " "
    -- Вывод: "Hello Elm World"

Стоит отметить, что подход Elm к строкам осознанно учитывает Unicode, что означает корректную обработку приведения к заглавному виду даже для языков с нелатинским алфавитом, несмотря на дополнительные сложности.

Смотрите Также