<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
	<title>Хабрахабр:  Метки / fp</title>
	<link>http://habrahabr.ru/rss/tag/fp/</link>
	<description><![CDATA[]]></description>
	<language>ru</language>
	<managingEditor>editor@habrahabr.ru</managingEditor>
	<generator>habrahabr.ru</generator>
	<pubDate>Fri, 10 Feb 2012 23:15:13 GMT</pubDate>
	<lastBuildDate></lastBuildDate>
	<image>
		<link>http://habrahabr.ru/</link>
		<url>http://habrahabr.ru/i/logo.gif</url>
		<title>Хабрахабр</title>
	</image>
	
		
		
		
			
		<item>		
			<title><![CDATA[Программирование / [Перевод] Монады с точки зрения теории категорий]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/programming/125782/</guid>
			<link>http://habrahabr.ru/blogs/programming/125782/</link>
			<description><![CDATA[<h1>Введение</h1><br/>
<br/>
Кажется, монады в программировании стали загадкой века. И для этого есть две причины:<br/>
<ul>
<li>недостаточное знание теории категорий;</li>
<li>многие авторы стараюстся не упоминать категории вообще.</li>
</ul><br/>
<br/>
Это как говорить об электричестве не используя мат. анализ. Достаточно для замены предохранителя, не хватит, чтобы спроектировать усилитель.<br/>
<br/>
Мы начнём с простого введения в категории и функторы, затем дадим определение монады, приведём простые примеры монад в категориях и в конце приведём монадическую терминологию используемую в языках программирования.<br/>
<br/>
Я уверен, что монады с точки зрения категорий почти элементарны.<br/>
<br/>
<h1>Содержание </h1><br/>
<br/>
<ol>
<li><a href="#category">Категория</a></li>
<li><a href="#functor">Функтор</a></li>
<li><a href="#nat_trans">Естественное преобразование</a></li>
<li><a href="#monad">Монада</a></li>
<li><a href="#monad_state">Монады исключения и состояния</a></li>
<li><a href="#monad_prog">Монады в программировании</a></li>
<li><a href="#refs">Ссылки</a></li>
</ol><br/>
<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/programming/125782/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Sat, 06 Aug 2011 21:07:17 GMT</pubDate>
			<author>sylvio</author>
			<category>монады</category><category>теория категорий</category><category>функциональное программирование</category><category>fp</category><category>haskell</category><category>ликбез</category>
		</item>
		
		
		
		
		
	
		
		
		
			
		<item>		
			<title><![CDATA[Алгоритмы / [Перевод] Просто о Хиндли-Милнере]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/algorithm/125250/</guid>
			<link>http://habrahabr.ru/blogs/algorithm/125250/</link>
			<description><![CDATA[<h4>Введение</h4><br/>
<img src="http://habrastorage.org/storage1/d911287a/5bcb28a6/4c72fa65/8285c0fa.gif" alt="Robert Milner" align="right"/>Если вы когда-нибудь интересовались не слишком популярными языками, то должно быть слышали о «Хиндли-Милнере». Этот алгоритм вывода типов используются в F# и Haskell и OCaml, как и в их предшественнике ML. Некоторые исследователи даже пытаются использовать <abbr title="Хиндли-Милнер">ХМ</abbr> для оптимизации динамических языков вроде Ruby, JavaScript и Clojure.<br/>
<br/>
И не смотря на его распространенность, до сих пор не было простого и понятного объяснения, что же это такое. Как же эта магия работает? Всегда ли выводимые типы будут верными? Или чем Хиндли-Милнер лучше, скажем, Java? И пока те, кто действительно знает что такое <abbr title="Хиндли-Милнер">ХМ</abbr> будут восстанавливаться от очередного умственного перенапряжения, мы попробуем разобраться в этом сами.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/algorithm/125250/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Fri, 29 Jul 2011 19:42:10 GMT</pubDate>
			<author>sylvio</author>
			<category>хиндли-милнер</category><category>типизация</category><category>системы типов</category><category>hindley-milner</category><category>typesystem</category><category>scala</category><category>haskell</category><category>fp</category><category>ликбез</category>
		</item>
		
		
		
		
		
	
		
		
		
			
		<item>		
			<title><![CDATA[Python / [Перевод] Откуда идут «функциональные» корни Python]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/python/111756/</guid>
			<link>http://habrahabr.ru/blogs/python/111756/</link>
			<description><![CDATA[Я никогда не полагал, что Python попадет под влияние функциональных языков, независимо от того что люди говорят или думают. Я знаком с императивными языками, такими как C и Algol68 и хотя я сделал функции объектами «первого класса», я не рассматривал Python как язык функционального программирования. Однако, было ясно, что пользователи хотят больше от списков и функций.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/python/111756/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Wed, 12 Jan 2011 18:08:57 GMT</pubDate>
			<author>cursed</author>
			<category>python</category><category>fp</category>
		</item>
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[Ненормальное программирование / Three Futamura Projections и не только]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/47418/</guid>
			<link>http://habrahabr.ru/blogs/crazydev/47418/</link>			
			<description><![CDATA[Привет, хабрачеловек. Сегодня я расскажу тебе про некоторые фундаментальные вещи в computer science: частичные вычисления, три проекции Футамуры и суперкомпиляцию.<br/>
&nbsp;<br/>
&nbsp;<br/>
<h1>1. Сразу к коду</h1><br/>
<code><font color="green">-- функция, которая возводит x в степень y (неотрицательную)</font><br/>
<b>power</b> x y =<br/>
&nbsp;&nbsp;&nbsp;&nbsp;<font color="blue">case</font> y <font color="blue">of</font><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 → 1<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1 → x<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_ → x * (power x (y - 1))<br/>
</code><br/>
<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/crazydev/47418/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Sat, 20 Dec 2008 22:09:25 GMT</pubDate>
			<author>alex_blank</author>
			<category>computation</category><category>partial evaluation</category><category>futamura</category><category>supercompilation</category><category>refal</category><category>supero</category><category>haskell</category><category>fp</category><category>prolog</category>
		</item>
		
		
		
		
		
		
		
		
	
	
	
	
	
	
	
	

	
</channel>
</rss>

