use YAML::Syck;
Як бачите, тут жодної сторонньої бібліотеки - самі перлини...
Ну... =)
[Насправді, мене цікавить більш загальна ситуація: чи може функція бути власним значенням. Але оскільки тут не математики зібралися...]
Цитата: Raven від 2008-07-09 04:01:51Ну... =)[isbear:~] perl -e '&{sub { print qq{\&{$_[0]}(q{$_[0]})}}}(q{sub { print qq{\&{$_[0]}(q{$_[0]})}}})'&{sub { print qq{\&{$_[0]}(q{$_[0]})}}}(q{sub { print qq{\&{$_[0]}(q{$_[0]})}}})[isbear:~]
я не те щоб математик, але що таке «власне значення функції»? може, мається на увазі оператор, а не функція?
Так піде?
Пекельно класичний приклад. В гуглі за першим лінком по даному запиту, до речі=)
Цитата: noddeat від 2008-07-09 10:50:26я не те щоб математик, але що таке «власне значення функції»? може, мається на увазі оператор, а не функція? Мені здалося, що топікстартер силиться описати лямбду.
Тобто, якщо я створю файл із запропонованим вмістом, зроблю його виконуваним і запущу в консолі, то я отримаю сам вміст файлу на вивід, і все? Мене цікавить саме це.
1) там немає засобів зробити функцію значенням самої себе. Все що там досягається, це позначення функції самої по собі.
2) λ-числення суперечливе. Тобто як теорія не годиться. Я, в принципі, знайшов чому: аксіома β не є коректною, бо її ліва частина не є такою.
Цитата: Campana від 2008-07-09 23:43:00Тобто, якщо я створю файл із запропонованим вмістом, зроблю його виконуваним і запущу в консолі, то я отримаю сам вміст файлу на вивід, і все? Мене цікавить саме це.Такий фінт вухами можна зробити і без особливих хитрощів. тинц-1,
Цитата: Campana від 2008-07-09 23:43:001) там немає засобів зробити функцію значенням самої себе. Все що там досягається, це позначення функції самої по собі.λx.x ? Мгм... висловлюйтесь ясніше, я не телепат.
Цитата: Campana від 2008-07-09 23:43:002) λ-числення суперечливе. Тобто як теорія не годиться. Я, в принципі, знайшов чому: аксіома β не є коректною, бо її ліва частина не є такою.Шановний, ви про що? По-перше, вираз "некоректна аксіома" - явний оксюморон. По-друге, lambda це не теорія, а формалізм. По-третє, ткніть мене носом у протиріччя.
Та куди ж ясніше? А λx.x — це банальна функція y=x, вона тут ні до чого.
1) Це Ви просто незнайомі з проблематикою основ математики. Дуже грубий приклад: якщо аксіома передбачатиме маніпуляції із сумою розбіжного ряду, то вона буде некоректною.2) Формалізми — це різновид теорій, а саме, це теорії виводу.3) Ну, взагалі-то, це класика. Суперечливість λ-числення довів Клейні в тому ж чи в наступному році, як воно було оприлюднене. Чорч тоді закинув лямбду в запічок і більше ніколи нею не займався. Доведення просте, як валянок, і використовує тільки аксіому β. На жаль, я його не пам'ятаю, але воно є в книзі Барендрегта.Каррі намагався порятувати λ-числення своїми комбінаторами, але природу, зокрема логіку, не обдуриш: всі комбінаторні системи настільки слабкі, що не здатні моделювати вивід; якщо ж їх посилити (здається, достатньо додати modus ponens), вони стають суперечливими, як і довів Клейні.
Але як тоді бути з Тьюрінг-повнотою лямбда-числення? λ - це класичний приклад Тьюрінг-повної системи, і, крім того, lisp just works.