On Sat, 21.03.2009 19:59:41 , Alexey Pechnikov wrote: > Hello! > > On Saturday 21 March 2009 17:58:07 Тихон Тарнавский wrote: > > > > Вообще-то, можно одной строкой: > > > > (apply #'map 'list matrix), > > > > где matrix - список списков > > > > > > О! Верх изящества. Вспоминается пример, как дядечка в середине 70-х > > > разбирал несколько ЧАСОВ(!) 4(!!!) строки на языке APL. > > > 35 лет прошло, и никто ничему так и не научился :-/ > > > > Это неудачная шутка?.. Какая связь между 4 строками, которые пришлось > > разбирать несколько часов, и вызовом трёх функций, понятным с первого > > взгляда? > > Абсолютно непонятно. Для человека, написавшего хотя бы несколько десятков строк на лиспе, этот код действительно понятен с первого взгляда.
> Вероятно, вы делаете какие-то неявные преобразования > типов, что есть явная императивщина. Преобразование типов для транспонирования матрицы? Это таки что-то новенького, как говорят в Одессе. > Математик не будет записывать Можете мне не рассказывать. Я по образованию математик. > интеграл/дифференциал и другие операции кучей символов хотя бы потому, что > прочитать будет невозможно. Это только кодеры способны написать нечто, что > сами через месяц не прочитают. Формулы это очень компактный способ записи, а > не набо закорючек, как вам кажется. Попробуйте написать какое-нибудь > тензорное > преобразование (к примеру, из Ландау-Лифшица) и сами поймете. > > На тикле я бы написал так > set matrix2 [T matrix] > и это будет понятно любому, кто знаком с матричной алгеброй. А функцию T я > определю в библиотеке подпрограмм. А это здесь вообще при чём? На лиспе я напишу (setq matrix-2 (transpose matrix-1)) А функцию transpose тоже определю где-то отдельно. Какое всё это имеет отношение к приведенной выше строке? -- С уважением, Тихон Тарнавский. http://linuxforum.ru http://posix.ru -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

