<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Functional on The VikiD Truth</title><link>https://thevikidtruth.com/computing/category/functional/</link><description>Recent content in Functional on The VikiD Truth</description><generator>Hugo</generator><language>en</language><lastBuildDate>Thu, 22 Oct 2026 10:30:00 +0400</lastBuildDate><atom:link href="https://thevikidtruth.com/computing/category/functional/index.xml" rel="self" type="application/rss+xml"/><item><title>Haskell Kata</title><link>https://thevikidtruth.com/computing/haskellkata/</link><pubDate>Thu, 06 Apr 2023 04:16:37 +0400</pubDate><guid>https://thevikidtruth.com/computing/haskellkata/</guid><description>&lt;p&gt;&lt;a href="https://thevikidtruth.com/computing/haskell/"&gt;Haskell&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/haskellkata/"&gt;Haskell Kata&lt;/a&gt; |&lt;/p&gt;&#10;&lt;h1 id="haskell-kata"&gt;Haskell Kata&lt;/h1&gt;&#10;&lt;h2 id="getting-started"&gt;Getting Started&lt;/h2&gt;&#10;&lt;p&gt;min 1 2&#10;max 1 2&#10;}&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;dbl x = x + x&#10;dbls x y = dbl x + dbl y&#10;&#10;dsn x = if x &amp;gt; 100&#10; then x&#10; else x*2&#10;dsn&amp;#39; x = (if x &amp;gt; 100 then x else x*3) + 1&#10;&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;nL = [0,1,2,3,4,5,6,7,8,9]&#10;nL ++ [10,11,12]&#10;0:nL&#10;nL!!3&#10;nLL= [nL,nL,nL]&#10;nLL ++ [[0,2]]&#10;[10,11,12]:nLL&#10;&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;length nL&#10;null nL&#10;take 5 nL&#10;drop 5 nL&#10;head [ ]&#10;head nL&#10;tail nL&#10;last nL&#10;init nL&#10;reverse nL&#10;maximum nL&#10;minimum nL&#10;sum nL&#10;product nL&#10;5 `elem` nL&#10;elem 5 nL&#10;&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;[1..10]&#10;[&amp;#39;a&amp;#39;..&amp;#39;l&amp;#39;]&#10;[3, 4..12]&#10;take 5 [40, 45..]&#10;take 20 (cycle nL)&#10;take 10 (repeat 5)&#10;replicate 4 10&#10;&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;[ dsn x | x &amp;lt;- nL, x &amp;gt; 5 ]&#10;beepBop xs = [ if x &amp;lt; 5 then &amp;#34;beep&amp;#34; else &amp;#34;bop&amp;#34; | x &amp;lt;- xs, odd x]&#10;[ x*y | x &amp;lt;- [2,5,10], y &amp;lt;- [8,10,11]]&#10;&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Purescript</title><link>https://thevikidtruth.com/computing/purescript/</link><pubDate>Sat, 27 Aug 2022 00:18:37 +0400</pubDate><guid>https://thevikidtruth.com/computing/purescript/</guid><description>&lt;p&gt;&lt;a href="https://thevikidtruth.com/about/caveatemptor/"&gt;Read This!&lt;/a&gt; | | &lt;span class="missing-link"&gt;Quick Links&lt;/span&gt; | &lt;a href="https://thevikidtruth.com/computing/algorithms/"&gt;Algorithms&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/assemblylanguage/"&gt;AssemblyLanguage&lt;/a&gt; | &lt;span class="missing-link"&gt;BASH&lt;/span&gt; | &lt;a href="https://thevikidtruth.com/computing/cprogramming/"&gt;C-Programmming&lt;/a&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/commonlisp/"&gt;CommonLisp&lt;/a&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/computersecurity/"&gt;Computer Security&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/databases/"&gt;Databases&lt;/a&gt; | &lt;span class="missing-link"&gt;Emacs&lt;/span&gt; | &lt;span class="missing-link"&gt;Exploitation&lt;/span&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/functional/"&gt;Functional Programming&lt;/a&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/firewalls/"&gt;Firewalls&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/git/"&gt;Git&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/haskell/"&gt;Haskell&lt;/a&gt; | &lt;span class="missing-link"&gt;Javascript&lt;/span&gt; | &lt;a href="https://thevikidtruth.com/computing/julia/"&gt;Julia&lt;/a&gt; | &lt;span class="missing-link"&gt;Social Engineering&lt;/span&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/picolisp/"&gt;Picolisp&lt;/a&gt; | &lt;span class="missing-link"&gt;Pharo Smalltalk&lt;/span&gt; | &lt;a href="https://thevikidtruth.com/computing/purescript/"&gt;Purescript&lt;/a&gt; |&#10;&lt;span class="missing-link"&gt;Linux&lt;/span&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/python/"&gt;Python&lt;/a&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/os/"&gt;Operating Systems&lt;/a&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/machinelearning/"&gt;Machine Learning&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/metasploit/"&gt;Metasploit&lt;/a&gt; | &lt;span class="missing-link"&gt;Open Data Science&lt;/span&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/networking/"&gt;Networking&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/machinelearning/"&gt;Machine Learning&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/racket/"&gt;Racket&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/scheme/"&gt;Scheme&lt;/a&gt; |&#10;&lt;span class="missing-link"&gt;Unity&lt;/span&gt; | &lt;a href="https://thevikidtruth.com/computing/vim/"&gt;vim&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/vlang/"&gt;V&lt;/a&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/webdevelopment/"&gt;Web Development&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/windowswsl/"&gt;Windows WSL&lt;/a&gt;&lt;/p&gt;&#10;&lt;h1 id="purescript"&gt;Purescript&lt;/h1&gt;&#10;&lt;p&gt;Here is the truth about PureScript: &lt;strong&gt;it&amp;rsquo;s Haskell&amp;rsquo;s ideas, aimed at the places JavaScript runs.&lt;/strong&gt; You get strong static types, purity and type classes, and out comes small, readable JavaScript.&lt;/p&gt;</description></item><item><title>Haskell</title><link>https://thevikidtruth.com/computing/haskell/</link><pubDate>Sun, 31 Jul 2022 04:52:11 +0400</pubDate><guid>https://thevikidtruth.com/computing/haskell/</guid><description>&lt;p&gt;&lt;a href="https://thevikidtruth.com/about/caveatemptor/"&gt;Read This!&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/algorithms/"&gt;Algorithms&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/assemblylanguage/"&gt;AssemblyLanguage&lt;/a&gt; | &lt;span class="missing-link"&gt;BASH&lt;/span&gt; | &lt;a href="https://thevikidtruth.com/computing/cprogramming/"&gt;C-Programmming&lt;/a&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/computersecurity/"&gt;Computer Security&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/databases/"&gt;Databases&lt;/a&gt; | &lt;span class="missing-link"&gt;Emacs&lt;/span&gt; | &lt;span class="missing-link"&gt;Exploitation&lt;/span&gt; | &lt;a href="https://thevikidtruth.com/computing/functional/"&gt;Functional Programming&lt;/a&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/firewalls/"&gt;Firewalls&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/git/"&gt;Git&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/haskell/"&gt;Haskell&lt;/a&gt; | &lt;span class="missing-link"&gt;Javascipt&lt;/span&gt; | &lt;a href="https://thevikidtruth.com/computing/julia/"&gt;Julia&lt;/a&gt; | &lt;span class="missing-link"&gt;Social Engineering&lt;/span&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/picolisp/"&gt;Picolisp&lt;/a&gt; | &lt;span class="missing-link"&gt;Pharo Smalltalk&lt;/span&gt; |&#10;&lt;span class="missing-link"&gt;Linux&lt;/span&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/python/"&gt;Python&lt;/a&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/os/"&gt;Operating Systems&lt;/a&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/machinelearning/"&gt;Machine Learning&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/metasploit/"&gt;Metasploit&lt;/a&gt; | &lt;span class="missing-link"&gt;Open Data Science&lt;/span&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/networking/"&gt;Networking&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/machinelearning/"&gt;Machine Learning&lt;/a&gt; |&lt;a href="https://thevikidtruth.com/computing/scheme/"&gt;Scheme&lt;/a&gt; |&#10;&lt;span class="missing-link"&gt;Unity&lt;/span&gt; | &lt;a href="https://thevikidtruth.com/computing/vim/"&gt;vim&lt;/a&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/webdevelopment/"&gt;Web Development&lt;/a&gt;&lt;/p&gt;&#10;&lt;h1 id="haskell"&gt;Haskell&lt;/h1&gt;&#10;&lt;p&gt;Here is the truth about Haskell: &lt;strong&gt;it is the language where the type checker is not a nag – it is a collaborator that writes half the program with you.&lt;/strong&gt; Once you accept that purity and laziness are features, a lot of software architecture lessons fall out for free.&lt;/p&gt;</description></item><item><title>Lambda Calculus</title><link>https://thevikidtruth.com/computing/lambdacalculus/</link><pubDate>Sat, 28 Aug 2021 03:24:22 +0400</pubDate><guid>https://thevikidtruth.com/computing/lambdacalculus/</guid><description>&lt;p&gt;&lt;a href="https://thevikidtruth.com/about/caveatemptor/"&gt;Read This!&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/algorithms/"&gt;Algorithms&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/assemblylanguage/"&gt;AssemblyLanguage&lt;/a&gt; | &lt;span class="missing-link"&gt;BASH&lt;/span&gt; | &lt;a href="https://thevikidtruth.com/computing/cprogramming/"&gt;C-Programmming&lt;/a&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/computersecurity/"&gt;Computer Security&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/databases/"&gt;Databases&lt;/a&gt; | &lt;span class="missing-link"&gt;Emacs&lt;/span&gt; | &lt;span class="missing-link"&gt;Exploitation&lt;/span&gt; | &lt;a href="https://thevikidtruth.com/computing/functional/"&gt;Functional Programming&lt;/a&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/firewalls/"&gt;Firewalls&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/git/"&gt;Git&lt;/a&gt; | &lt;span class="missing-link"&gt;Javascipt&lt;/span&gt; | &lt;a href="https://thevikidtruth.com/computing/julia/"&gt;Julia&lt;/a&gt; | &lt;span class="missing-link"&gt;Social Engineering&lt;/span&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/picolisp/"&gt;Picolisp&lt;/a&gt; | &lt;span class="missing-link"&gt;Pharo Smalltalk&lt;/span&gt; | &lt;span class="missing-link"&gt;Linux&lt;/span&gt; | &lt;a href="https://thevikidtruth.com/computing/python/"&gt;Python&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/os/"&gt;Operating Systems&lt;/a&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/machinelearning/"&gt;Machine Learning&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/metasploit/"&gt;Metasploit&lt;/a&gt; | &lt;span class="missing-link"&gt;Open Data Science&lt;/span&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/networking/"&gt;Networking&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/machinelearning/"&gt;Machine Learning&lt;/a&gt; |&lt;a href="https://thevikidtruth.com/computing/scheme/"&gt;Scheme&lt;/a&gt; | &lt;span class="missing-link"&gt;Unity&lt;/span&gt; | &lt;a href="https://thevikidtruth.com/computing/vim/"&gt;vim&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/webdevelopment/"&gt;Web Development&lt;/a&gt;&lt;/p&gt;&#10;&lt;h1 id="lambda-calculus"&gt;Lambda Calculus&lt;/h1&gt;&#10;&lt;p&gt;Here is a truth that still amazes me: &lt;strong&gt;you can build all of computation out of nothing but functions.&lt;/strong&gt; No numbers, no booleans, no loops, no variables that change – just making functions and applying them. That tiny system is the lambda calculus, and every Lisp, every closure, every &lt;code&gt;=&amp;gt;&lt;/code&gt; in JavaScript descends from it.&lt;/p&gt;</description></item><item><title>Functional Programming</title><link>https://thevikidtruth.com/computing/functional/</link><pubDate>Sat, 28 Aug 2021 03:19:02 +0400</pubDate><guid>https://thevikidtruth.com/computing/functional/</guid><description>&lt;p&gt;&lt;a href="https://thevikidtruth.com/about/caveatemptor/"&gt;Read This!&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/algorithms/"&gt;Algorithms&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/assemblylanguage/"&gt;AssemblyLanguage&lt;/a&gt; | &lt;span class="missing-link"&gt;BASH&lt;/span&gt; | &lt;a href="https://thevikidtruth.com/computing/cprogramming/"&gt;C-Programmming&lt;/a&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/computersecurity/"&gt;Computer Security&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/databases/"&gt;Databases&lt;/a&gt; | &lt;span class="missing-link"&gt;Emacs&lt;/span&gt; | &lt;span class="missing-link"&gt;Exploitation&lt;/span&gt; | &lt;a href="https://thevikidtruth.com/computing/functional/"&gt;Functional Programming&lt;/a&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/firewalls/"&gt;Firewalls&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/git/"&gt;Git&lt;/a&gt; | &lt;span class="missing-link"&gt;Javascipt&lt;/span&gt; | &lt;a href="https://thevikidtruth.com/computing/julia/"&gt;Julia&lt;/a&gt; | &lt;span class="missing-link"&gt;Social Engineering&lt;/span&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/picolisp/"&gt;Picolisp&lt;/a&gt; | &lt;span class="missing-link"&gt;Pharo Smalltalk&lt;/span&gt; | &lt;span class="missing-link"&gt;Linux&lt;/span&gt; | &lt;a href="https://thevikidtruth.com/computing/python/"&gt;Python&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/os/"&gt;Operating Systems&lt;/a&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/machinelearning/"&gt;Machine Learning&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/metasploit/"&gt;Metasploit&lt;/a&gt; | &lt;span class="missing-link"&gt;Open Data Science&lt;/span&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/networking/"&gt;Networking&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/machinelearning/"&gt;Machine Learning&lt;/a&gt; |&lt;a href="https://thevikidtruth.com/computing/scheme/"&gt;Scheme&lt;/a&gt; | &lt;span class="missing-link"&gt;Unity&lt;/span&gt; | &lt;a href="https://thevikidtruth.com/computing/vim/"&gt;vim&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/webdevelopment/"&gt;Web Development&lt;/a&gt;&lt;/p&gt;&#10;&lt;h1 id="functional-programming"&gt;Functional Programming&lt;/h1&gt;&#10;&lt;h2 id="functional-programming-1"&gt;Functional Programming&lt;/h2&gt;&#10;&lt;p&gt;Here is the truth functional programming keeps repeating until it sinks in: &lt;strong&gt;if you stop changing things, most of your bugs disappear.&lt;/strong&gt; You write functions that take values and return new values, and you build programs by composing them.&lt;/p&gt;</description></item></channel></rss>