Проверить содержит ли строка символ

      Комментарии к записи Проверить содержит ли строка символ отключены

В этой теме 0 ответов, 1 участник, последнее обновление  Васильев Владимир Сергеевич 2 мес. назад.

  • Автор
    Сообщения
  • #3459

    Пусть дана строка S, надо проверить входит ли в нее символ C. Если символ C не задан — функция должна вернуть последовательно все символы исходной строки. Поведение такой функции аналогично функции member, работающей для списков. В SWI Prolog строки задаются списками, но в Visual Prolog необходима наша функция.

    Функция принимает на вход строку и символ. В случае если символ не задан, функция возвращает по очереди символы строки (несколько решений), поэтому является недетерминированной:

    PREDICATES
      nondeterm symbol_of_string(string, char)

    Работа функции аналогичная функции member, но вместо разделения списка на голову используется встроенная функция frontchar:

    CLAUSES 
      symbol_of_string(String, Symbol):-
        frontchar(String, Symbol, _StringTail);
        frontchar(String, _FirstSymbol, StringTail),
        symbol_of_string(StringTail, Symbol).

    Результаты работы функции:

Для ответа в этой теме необходимо авторизоваться.