?

Log in

No account? Create an account
немного математики, логики и программирования - Поклонник деепричастий [entries|archive|friends|userinfo]
Anatoly Vorobey

[ website | Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Links
[Links:| English-language weblog ]

немного математики, логики и программирования [фев. 23, 2008|08:57 am]
Anatoly Vorobey
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, и особенно статья, которую она упоминает - очень и очень интересны, но бедный мой мозг, кажется, с ними сейчас не справляется. Сносит крышу.
СсылкаОтветить

Comments:
[User Picture]From: shmel39
2008-02-23 08:14 am
Интересно. Вот только лично у меня этот фрагмент ругается и сильно материться. Если оставить только функцию integral, то вывод типов порождает следующее:
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 так, чтобы она возращала лист, хоть и скомпилировалась, но показывает погоду на Марсе. У Вас этот фрагмент кода скомпилировался?
(Ответить) (Thread)
[User Picture]From: spamsink
2008-02-23 08:30 am
2. Интроспективную программу можно написать на любом достаточно мощном языке. Язык Лемпель-Зивовских подстановок, видать, достаточно мощный. :)
(Ответить) (Thread)
[User Picture]From: master_nemo
2008-02-23 10:30 am

1)

ой
что это за страх такой?
для чего-нибудь из фортрана или его друзей?
(Ответить) (Thread)
From: ext_72902
2008-02-23 11:29 am

Re: 1)

Ну как же. Просто пишем интегральное уравнение - и оно автоматически решается.
(Ответить) (Parent) (Thread)
[User Picture]From: robel
2008-02-23 04:14 pm
Внимание!! selfgz.gz на Мас не открывать! Уходит в луп!
(Ответить) (Thread)
[User Picture]From: avva
2008-02-24 05:20 am
Это шутка или правда что ли? :)
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: aa_kir
2008-02-23 05:06 pm
Про n-category cafe: связь языка тензорных категорий, физики и топологии и правда весьма интересна (и хороша изучена) - а вот логика мне там кажется сильно притянутой за уши.

(Ответить) (Thread)
[User Picture]From: avva
2008-02-23 08:15 pm
Они еще не написали как следует про логику - может, будет убедительнее со временем :)
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: juan_gandhi
2008-02-23 05:12 pm
Статья эта, конечно, миленькая, но там большая карусель в голове, и сказывается непрофессионализм авторов. Сколько слов о моноидальных категориях, и ни слова ни о Маклейне ни хотя бы о Соловьёве. А связь когерентности в моноидальных категориях с логикой именно они обсуждали. Потом... что там с топосами и семантикой Крипке-Жуаяля? Или это слишком сложно? Без них, по-моему, сложновато будет что-то серьёзное из логики связывать с категориями. Зато масса смешных картинок, не относящихся к делу; а уж Фейнман пристёгнут, имхо, только потому что у него "тоже диаграммы".

Изучать же категории я по-прежнему рекомендую по Categories for the Working Mathematician.
(Ответить) (Thread)
[User Picture]From: malaya_zemlya
2008-02-23 08:03 pm
Любители Хаскеля меня не поддержат, но мне казалось, что самое веселое в Computer Science начинается как раз тогда, когда стирается грань между программами и типами данных. Тогда получается, что вычисоения и числа - это одно и тожн, любую вычислимую функцию можно применить к любому аргументу и т п.
Соответственно, вся Розетта схлопывается в точку, что не есть интересно.
(Ответить) (Thread)
From: roma
2008-02-24 02:34 am
про 3: С большой натяжкой можно сказать, что именно это мы это и пытаемся тут понимать (вместо логики "производная алгебраическая геометрия", про которую тоже, наверняка,
в блогах пишут или скоро напишут). Только где там у них в статье содержание? На первый взгляд -- известные общие мутные идеи + куски из учебников?
(Ответить) (Thread)
[User Picture]From: avva
2008-02-24 05:20 am
Да это и должна быть обзорная статья, как я понимаю.
(Ответить) (Parent) (Thread) (Развернуть)
From: pawa
2008-02-24 01:19 pm
2. Казалось бы факт существования такого файла легко следует из теоремы о неподвижной точке для любого сжимающего отображения ;)
(Ответить) (Thread)
[User Picture]From: avva
2008-02-24 01:40 pm
Архиваторы не всегда сжимают.
(Ответить) (Parent) (Thread)
(Удалённый комментарий)