Я предполагаю, что вам, вероятно, разрешено использовать s.[i]
для получения i-го символа строки s.Это то же самое, что String.get, но преподаватель может не думать об этом в таких терминах.Без какой-либо формы получения отдельных символов для строки, я считаю, что это невозможно.Вероятно, вам следует проверить его с инструктором, но я был бы удивлен, если бы он имел в виду, что вы не можете разделить строку на символы (что вы не можете сделать с помощью сопоставления с образцом в Ocaml).
Как только вы можете получить отдельные символы, способ сделать это должен быть довольно ясным (вам не нужна подстрока для рекурсивного обхода каждой строки).
Если вы все еще хотите написать подстроку, создайте еебыло бы сложно, так как у вас нет доступа к String.create или другим подобным функциям.Но вы можете написать свою собственную версию String.create, используя рекурсию, строковые литералы одного символа (например, "x"
), возможность устанавливать символ в строке на другой (например, s.[0] <- c
) и конкатенацию строк (s1 ^ s2
).).Опять же, конечно, все это предполагает, что эти операторы разрешено использовать.