strlen

Jan. 24th, 2013 09:23 pm
thedeemon: (office)
[personal profile] thedeemon
В Идрисе один из базовых типов - String, внутри представленный как null-terminated C string. Знаете, как узнать длину такой строки? Сконвертить в список Char'ов, а потом посчитать его длину. А все потому, что хоть в рантайме идриса и есть нормальная функция вычисления длины (по-хорошему ее вообще стоило бы хранить, а не вычислять), в стандартную библиотеку ее забыли экспортнуть. У них там в академии своя атмосфера.

Date: 2013-01-25 06:58 am (UTC)
From: [identity profile] mpak666.livejournal.com
как замечательно :))) бритва Оккама в действии

Date: 2013-01-25 07:27 am (UTC)
From: [identity profile] thedeemon.livejournal.com
Ага. :) При большом желании решается библиотечно. Char там внутри - инт, так что можно символами оперировать не толькео ascii, дальше нужно лишь написать свою конверсию из String в список Char'ов, и будут юникодные строки-списки.

Date: 2013-01-25 07:30 am (UTC)
From: [identity profile] mpak666.livejournal.com
но можно ли переопределить стандартные функции, чтобы другие библиотеки (например файловые) смогли работать после этого с unicode без дополнительных телодвижений?

Date: 2013-01-25 07:56 am (UTC)
From: [identity profile] thedeemon.livejournal.com
Те функции, что в стандартной библиотеке (их совсем немного), привязаны к String и реализованы на Си тупейшим образом (через strlen, strcpy, fgets, etc.). Так что вряд ли.

Profile

thedeemon: (Default)
Dmitry Popov

December 2025

S M T W T F S
 12 3456
789101112 13
14151617181920
21222324252627
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 11th, 2026 11:56 am
Powered by Dreamwidth Studios