<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>programming on ankit bahuguna</title>
    <link>https://ankitbahuguna.xyz/tags/programming/</link>
    <description>Recent content in programming on ankit bahuguna</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <lastBuildDate>Mon, 16 Oct 2023 18:48:12 +0530</lastBuildDate>
    <atom:link href="https://ankitbahuguna.xyz/tags/programming/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Lazy Evaluation</title>
      <link>https://ankitbahuguna.xyz/posts/lazy-evaluation/</link>
      <pubDate>Mon, 16 Oct 2023 18:48:12 +0530</pubDate>
      <guid>https://ankitbahuguna.xyz/posts/lazy-evaluation/</guid>
      <description>Learning OCaml and Lazy Evaluation Lazy evaluation is a cool concept that delays computations until they&amp;rsquo;re actually needed, saving resources and time. OCaml is great for this, but TypeScript and Go can do it too in their own ways.
OCaml Example OCaml uses lazy streams to generate Fibonacci numbers:
type &amp;#39;a stream = Cons of &amp;#39;a * &amp;#39;a stream Lazy.t let rec fibs a b = Cons (a, lazy (fibs b (a + b))) let rec take n (Cons (x, xs)) = if n &amp;lt;= 0 then [] else x :: take (n - 1) (Lazy.</description>
    </item>
    <item>
      <title>Node VM</title>
      <link>https://ankitbahuguna.xyz/posts/trying-out-node-vm-module/</link>
      <pubDate>Mon, 02 Oct 2023 17:56:37 +0530</pubDate>
      <guid>https://ankitbahuguna.xyz/posts/trying-out-node-vm-module/</guid>
      <description>I recently used Node&amp;rsquo;s VM module with a CLI tool to allow passing custom JavaScript via command line flags. The tool interacts with a REST API that returns JSON responses.
So for instance, we have a users end point that returns users. It accepts some filters but sometimes you may want to filter or transform the output in some way.
myclitool get users limit 10 [ { name: &amp;#39;jon&amp;#39;, email: &amp;#39;jon@doe.</description>
    </item>
    <item>
      <title>Tail recursion - Part 2</title>
      <link>https://ankitbahuguna.xyz/posts/benchmarking-recursive-and-tail-recursive-functions-in-ocaml/</link>
      <pubDate>Thu, 24 Aug 2023 18:48:12 +0530</pubDate>
      <guid>https://ankitbahuguna.xyz/posts/benchmarking-recursive-and-tail-recursive-functions-in-ocaml/</guid>
      <description>This post is a continuation of the my last post . I did some benchmarking for recursive and non-recursive version of sum function.
open Unix (* Tail recursive version *) let min_list_tail lst = let rec min_tail lst acc = match lst with | [] -&amp;gt; acc | h :: t -&amp;gt; min_tail t (if h &amp;lt; acc then h else acc) in match lst with | [] -&amp;gt; failwith &amp;#34;Empty list&amp;#34; | h :: t -&amp;gt; min_tail t h (* Non-tail recursive version *) let rec min_list_non_tail = function | [] -&amp;gt; failwith &amp;#34;Empty list&amp;#34; | [x] -&amp;gt; x | h :: t -&amp;gt; let min_tail = min_list_non_tail t in if h &amp;lt; min_tail then h else min_tail let generate_large_list size = List.</description>
    </item>
    <item>
      <title>Tail recursion</title>
      <link>https://ankitbahuguna.xyz/posts/undertanding-tail-recursion/</link>
      <pubDate>Tue, 15 Aug 2023 01:55:25 +0530</pubDate>
      <guid>https://ankitbahuguna.xyz/posts/undertanding-tail-recursion/</guid>
      <description>I&amp;rsquo;ve been playing around with OCaml lately and wanted to understand how tail recursion works. According to Wikipedia:
&amp;ldquo;In computer science, a tail call is a subroutine call performed as the final action of a procedure. If the target of a tail is the same subroutine, the subroutine is said to be tail recursive, which is a special case of direct recursion.&amp;rdquo;
Non-Tail Recursive Sum Function in OCaml Here&amp;rsquo;s a non-tail recursive sum function in OCaml:</description>
    </item>
    <item>
      <title>Scraping Leetcode With Puppeteer</title>
      <link>https://ankitbahuguna.xyz/posts/scraping-leetcode/</link>
      <pubDate>Fri, 16 Apr 2021 18:48:12 +0530</pubDate>
      <guid>https://ankitbahuguna.xyz/posts/scraping-leetcode/</guid>
      <description>Warning: This code no longer works since there has been a change in Leetcode&amp;rsquo;s website from the time this post was written.
I am, by no means, a Fangsexual and I don&amp;rsquo;t enjoy solving problems on the LeetCode, so I decided to find a way to quickly download the top 15 most voted solutions for any problem.
I&amp;rsquo;ve been playing around with Puppeteer and it seemed like a good idea to use it for something like this.</description>
    </item>
  </channel>
</rss>
