1. Эта запись о работе со степенными рядами в Хаскеле напомнила мне, почему я влюбился в этот язык, когда изучал его два года назад (увы, с тех пор с ним не работал). Это неверноятно прекрасно - когда можешь определить функции вот так, и оно просто будет работать:
integral fs = 0 : (int1 fs 1) where
int1 (g:gs) n = g/n : (int1 gs (n+1))
expx = 1 + (integral expx)
sinx = integral cosx
cosx = 1 - (integral sinx)
2. Знаете ли вы, что можно составить сархивированный файл, который разворачивается сам в себя? Ссылка на файл selfgz.gz в этом старом сообщении не работает, но его можно скачать отсюда.
3. Вот эта запись в n-category cafe, и особенно статья, которую она упоминает - очень и очень интересны, но бедный мой мозг, кажется, с ними сейчас не справляется. Сносит крышу.
integral fs = 0 : (int1 fs 1) where
int1 (g:gs) n = g/n : (int1 gs (n+1))
expx = 1 + (integral expx)
sinx = integral cosx
cosx = 1 - (integral sinx)
2. Знаете ли вы, что можно составить сархивированный файл, который разворачивается сам в себя? Ссылка на файл selfgz.gz в этом старом сообщении не работает, но его можно скачать отсюда.
3. Вот эта запись в n-category cafe, и особенно статья, которую она упоминает - очень и очень интересны, но бедный мой мозг, кажется, с ними сейчас не справляется. Сносит крышу.
no subject
Date: 2008-02-23 08:14 am (UTC)GHCi, version 6.8.1:
*Main> :t integral
integral :: (Fractional t) => [t] -> [t]
Как мы можем передавать функцию вместо [t]? Если добавить еще и экспоненту, то получаю:
Main.hs:10:7: No instance for (Num [t]) arising from the literal `1' at Main.hs:10:7 Possible fix: add an instance declaration for (Num [t]) In the first argument of `(+)', namely `1' In the expression: 1 + (integral expx) In the definition of `expx': expx = 1 + (integral expx)Моих знаний Хаскелля не хватает, чтобы разобраться с этим, однако все равно видно, что в int1 первый аргумент разбирается как лист. Попытка изменить expx так, чтобы она возращала лист, хоть и скомпилировалась, но показывает погоду на Марсе. У Вас этот фрагмент кода скомпилировался?
no subject
Date: 2008-02-23 08:51 am (UTC)no subject
Date: 2008-02-23 08:53 am (UTC)no subject
Date: 2008-02-23 11:03 am (UTC)no subject
Date: 2008-02-23 08:53 am (UTC)no subject
Date: 2008-02-23 11:01 am (UTC)no subject
Date: 2008-02-23 06:30 pm (UTC)можно на питоне подобное написать, с генераторами вместо ленивых списков.
получается, правда, не так красиво:
integral = lambda s, c0=0: chain([c0], (c/(n+1.) for n,c in enumerate(s))) def exp(): for x in integral(exp(), 1.): yield xno subject
Date: 2008-02-23 06:46 pm (UTC)no subject
Date: 2008-02-24 05:21 am (UTC)no subject
Date: 2008-02-23 08:30 am (UTC)1)
Date: 2008-02-23 10:30 am (UTC)что это за страх такой?
для чего-нибудь из фортрана или его друзей?
Re: 1)
Date: 2008-02-23 11:29 am (UTC)no subject
Date: 2008-02-23 04:14 pm (UTC)no subject
Date: 2008-02-24 05:20 am (UTC)> Это шутка или правда что ли? :)
Date: 2008-02-24 09:01 am (UTC)$ gzcat selfgz.gz > selfgz
$ uname -mr
8.11.0 Power Macintosh
— работает.
no subject
Date: 2008-02-24 10:27 am (UTC)no subject
Date: 2008-02-23 05:06 pm (UTC)no subject
Date: 2008-02-23 08:15 pm (UTC)no subject
Date: 2008-02-24 01:55 am (UTC)no subject
Date: 2008-02-23 05:12 pm (UTC)Изучать же категории я по-прежнему рекомендую по Categories for the Working Mathematician.
no subject
Date: 2008-02-23 08:03 pm (UTC)Соответственно, вся Розетта схлопывается в точку, что не есть интересно.
no subject
Date: 2008-02-24 02:34 am (UTC)в блогах пишут или скоро напишут). Только где там у них в статье содержание? На первый взгляд -- известные общие мутные идеи + куски из учебников?
no subject
Date: 2008-02-24 05:20 am (UTC)no subject
Date: 2008-02-24 05:31 am (UTC)т.к. кажется, что некуда. Но если есть какое-то конкретное место, в которое можно было бы, то скажи какое, буду всячески благодарен.
no subject
Date: 2008-02-24 05:34 am (UTC)no subject
Date: 2008-02-24 01:19 pm (UTC)no subject
Date: 2008-02-24 01:40 pm (UTC)no subject
Date: 2008-02-25 01:05 pm (UTC)no subject
Date: 2008-02-26 07:43 am (UTC)no subject
Date: 2008-03-02 05:23 pm (UTC)