___           ___           ___           ___          ___            ___        ___           ___           ___     
    /\  \         /\  \         /\  \         /\__\        /\  \          /\__\      /\  \         /\  \         /\  \    
   /::\  \       /::\  \        \:\  \       /::|  |       \:\  \        /:/  /     /::\  \       /::\  \       /::\  \   
  /:/\:\  \     /:/\:\  \        \:\  \     /:|:|  |        \:\  \      /:/  /     /:/\:\  \     /:/\ \  \     /:/\ \  \  
 /::\~\:\  \   /:/  \:\  \   ___ /::\  \   /:/|:|  |__      /::\  \    /:/  /     /::\~\:\  \   _\:\~\ \  \   _\:\~\ \  \ 
/:/\:\ \:\__\ /:/__/ \:\__\ /\  /:/\:\__\ /:/ |:| /\__\    /:/\:\__\  /:/__/     /:/\:\ \:\__\ /\ \:\ \ \__\ /\ \:\ \ \__\
\/__\:\/:/  / \:\  \ /:/  / \:\/:/  \/__/ \/__|:|/:/  /   /:/  \/__/  \:\  \     \:\~\:\ \/__/ \:\ \:\ \/__/ \:\ \:\ \/__/
     \::/  /   \:\  /:/  /   \::/__/          |:/:/  /   /:/  /        \:\  \     \:\ \:\__\    \:\ \:\__\    \:\ \:\__\  
      \/__/     \:\/:/  /     \:\  \          |::/  /    \/__/          \:\  \     \:\ \/__/     \:\/:/  /     \:\/:/  /  
                 \::/  /       \:\__\         /:/  /                     \:\__\     \:\__\        \::/  /       \::/  /   
                  \/__/         \/__/         \/__/                       \/__/      \/__/         \/__/         \/__/     
Pointless: a scripting language for learning and fun

I've made this site to share a project I've been working on intermittently for the last couple of years - a programming language called Pointless. The language is a distillation of some of the concepts from functional programming that I find interesting, with a design goal that can be roughly summarized as "creating the programming language that I'd like to have learned as a beginner programmer". This language is still very much in-the-works, but I'm excited to share the progress that I've made so far. More information can be found in the examples and documentation sections.

- Avery Nortonsmith

import "chart.ptls" as chart output = iterate(collatzStep, 175) |> takeWhile(greaterThan(1)) |> chart.scale(8) |> println collatzStep(n) = if n % 2 == 0 then n / 2 else n * 3 + 1
$ ./pointless lib/examples/collatz.ptls
                                              █                                 
                                    ▃         █                                 
                                    █       ▃ █                                 
                                  ▂ █       █ █▁                                
                                  █ █▂    ▅ █ ██                                
                                ▇ █▂██  ▄ █ █▆██▁                               
     ▁ ▅  ▂            ▂    ▃ ▇ █▄████▅ █▂█▆█████▁ ▅  ▂                         
▂▄▃▆▃█▅█▆▄█▅▃▂▄▃▆▃█▄▃▆▄█▅▃▇▄█▅█████████▇██████████▅█▆▄█▅▃▇▄▂▂▁▂▂▁▁▁▁▂▁▂▁▁▁▁▁▁▁▁▁