В Guile 1.6. * Всю работу выполняет функция scm_istring2number(char *str,int strlen,int radix).
Однако этой функции нет в Guile 1.8.. Как я могу выполнить ту же задачу в Guile 1.8.?
Это нетривиально, потому что функция scm_string_to_number(SCM str,int radix) не преобразует числа больше 231-1 (по крайней мере, в Guile 1.6. *).
Нет, не должно. Это зависит от Хитрости.





Согласно журналу изменений версии 1.8, функция была переименована в scm_c_locale_stringn_to_number.
В 1.8 scm_string_to_number фактически распаковывает значения SCM и передает их scm_c_locale_stringn_to_number, поэтому он также должен обрабатывать bignums.
Я обнаружил, что scm_string_to_number также ожидает аргумент radix как SCM, и как только я его исправил, он работал и для bignums.
Также должны быть помечены тегами lisp и scheme.