<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Functional Programming on RAVR Lab</title>
    <link>http://ravrlab.ru/en/cs/progr_and_sdes/fp/</link>
    <description>Recent content in Functional Programming on RAVR Lab</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Fri, 02 May 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="http://ravrlab.ru/en/cs/progr_and_sdes/fp/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>FP Languages</title>
      <link>http://ravrlab.ru/en/cs/progr_and_sdes/fp/fp_langs/</link>
      <pubDate>Fri, 02 May 2025 00:00:00 +0000</pubDate>
      <guid>http://ravrlab.ru/en/cs/progr_and_sdes/fp/fp_langs/</guid>
      <description>ML-family:&#xA;Haskell, Elm, PureScript F# (lives in .NET-ecosystem) Scala (lives in Java-ecosystem) LISP Family:&#xA;Hy (lives in Python-ecosystem) LISP, Scheme // original LISPs Clojure (lives in Java-ecosystem), Racket // modern LISPs Relevant ideas: code as data, homoiconicity, macros</description>
    </item>
    <item>
      <title>Metaprogramming</title>
      <link>http://ravrlab.ru/en/cs/progr_and_sdes/fp/metaprogramming/</link>
      <pubDate>Wed, 30 Apr 2025 00:00:00 +0000</pubDate>
      <guid>http://ravrlab.ru/en/cs/progr_and_sdes/fp/metaprogramming/</guid>
      <description>Approaches:&#xA;macros, code-as-data (LISP) rule-based substitutions (Wolfram Mathematica) </description>
    </item>
    <item>
      <title>Definition of FP</title>
      <link>http://ravrlab.ru/en/cs/progr_and_sdes/fp/fp_core/</link>
      <pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate>
      <guid>http://ravrlab.ru/en/cs/progr_and_sdes/fp/fp_core/</guid>
      <description>What FP is not There is a popular belief that functional programming in Python (and similarly everywhere else) is just:&#xA;map, reduce and filter list comprehensions lambda functions In reality, those are just a minor secondary parts of FP.&#xA;Core of FP FP in it&amp;rsquo;s core is the following.&#xA;1️⃣&#xA;Pure functions. Avoiding (or managing) side-effects. Stateless functions and state management. details&#xD;Definition of pure function is that for a given input, pure function ALWAYS produces the same output.</description>
    </item>
    <item>
      <title>FP Design Patterns</title>
      <link>http://ravrlab.ru/en/cs/progr_and_sdes/fp/fp_patterns/</link>
      <pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate>
      <guid>http://ravrlab.ru/en/cs/progr_and_sdes/fp/fp_patterns/</guid>
      <description>Compositions Nesting (implied higher-order functions) Currying and Partial application Threading, Piping (-&amp;gt; Clojure macro) Transducers (can be seen as a more mathematically pure -&amp;gt; macro) Cathegory theory related Commonly used:&#xA;Monoid, Semigroup Zippers Functors, Applicative Monads Monad Transformers More rare:&#xA;Alternative MonadPlus Comonad Free Monoid Free Monad Church-encoded Monad Popular Monads:&#xA;List IO Maybe Either, Result Writer Reader Lazy State Popular Transformers:&#xA;ReaderT MaybeT StateT ... Typesystem Basic:&#xA;ADT (Algebraic Data Classes) Typeclasses GADT (Generalized ADTs) Advanced:</description>
    </item>
  </channel>
</rss>
