Проверьте наличие строки в схеме - PullRequest
1 голос
/ 18 ноября 2009

Как проверить, в DrScheme , содержит ли строка данный символ / подстроку? Как включить соответствующий модуль, если он определен в модуле?

Ответы [ 3 ]

1 голос
/ 18 ноября 2009

В DrScheme, при условии, что язык установлен на «Модуль», будет работать следующее

#lang scheme
(require (lib "13.ss" "srfi"))

(string-contains "1234abc"  "abc")
0 голосов
/ 18 ноября 2009

Вот быстрый взлом. Возвращает индекс (на основе 0) строки s в строке t. Или #f, если не найден. Возможно, это не лучший способ сделать это, если ваша Схема имеет поддержку SRFI-13 или другую встроенную поддержку.

Код отредактирован. Спасибо Эли за предложения.

(define (string-index s t)
  (let* ((len (string-length s))
        (max (- (string-length t) len)))        
    (let loop ((i 0))
      (cond ((> i max) 
             #f)
            ((string=? s
                       (substring t i (+ i len)))
             i)
            (else (loop (+ i 1)))))))
0 голосов
/ 18 ноября 2009

Нет стандартной процедуры для этого. SRFI 13 содержит необходимую процедуру (строковый индекс). Пожалуйста, проверьте, реализует ли ваша Схема этот SRFI.

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