строка cdr на языке ML - PullRequest
       4

строка cdr на языке ML

0 голосов
/ 25 ноября 2011

Я пытаюсь найти библиотечную функцию в ML, которая равна (строка cdr) в Scheme (имеется в виду (cdr abcd) = bcd).

Ответы [ 2 ]

1 голос
/ 25 ноября 2011

(Asuming SML)

Другой способ - преобразовать строку в список символов ( взорваться ), тогда у вас есть возможность взять голову ( hd ) или хвост ( tl ), а затем, наконец, преобразовать его обратно в строку ( implode ):

- (implode o tl o explode) "this is a string";
val it = "his is a string" : string

Функции преобразования строк можно найти в модуле String , а функции головы и хвоста можно найти в модуле List

Очевидно, что здесь вы также можете использовать метод подстроки, однако в SML у вас есть функция extract , которая очень удобна в этом случае:

- String.extract("This is a string", 1, NONE);
val it = "his is a string" : string

Если задать аргумент NONE, он будет извлечен до конца строки.

0 голосов
/ 25 ноября 2011

Если предположить диалект Ocaml, вы можете использовать стандартный модуль String , например,

let rest_str str = 
  let slen = String.length str in
  String.sub str 1 (slen-1)
;;
...