A lazily evaluated, functional, flexible and concise Lisp.

Overview

KamilaLisp

A lazily evaluated, functional, flexible and concise Lisp modelled after Haskell and APL, among others.

;; Hello, world!
(println "Hello, world!")

;; ProjectEuler, problem 4.
(def n (:$(+ 100)@iota 900))
(def tab (:to-string@outer-prod * n n))
(def is-p? #(= #0 reverse))
(println@foldl1' max (:parse-num@filter is-p? tab))

;; ProjectEuler, problem 2.
(println@sum@filter #(& ~@$(% _ 2) $(> 4000000)) (:fib@iota 40))


;; SKI calculus implementation using KamilaLisp macros and pattern matching.
(defmacro ski (x) (match x
    ((a b c) (S a b c) [(tie a c b c) / 2])
    ((a b)   (K a b)   a)
    ((a)     (I a)     a)
    ((a b)   (a b)     (tie (ski a) (ski b)))
    (x)
))

(def ski-red $(iterate /= ski))

;; an example expression
(println@ski-red '(S I I K))

Useful links:

Setup

git clone https://github.com/kspalaiologos/kamilalisp

Load the kamilalisp.iml project into IntelliJ IDEA. Building the project should also rebuild the artifacts, meaning that the jar file will be placed in out/artifacts/kamilalisp_jar/.

Dependencies

KamilaLisp runs on the Java virtual machine and doesn't have native dependencies. It depends on the following major Java libraries:

  • Google Guava
  • ANTLR4 runtime
  • JLine

License

KamilaLisp is distributed under the GNU General Public License v3. See LICENSE for details.

You might also like...

Program that allows employees to clock in and clock out of work. Employees who are managers can add, edit and delete employees and shifts from the database.

Program that allows employees to clock in and clock out of work. Employees who are managers can add, edit and delete employees and shifts from the database.

Clock-In-Clock-Out-System Created by: Kennedy Janto, Taylor Vandenberg, Duc Nguyen, Alex Gomez, Janista Gitbumrungsin This is a semester long project

Nov 5, 2022

This repository contains the code for the Runescape private server project, and this repo is soley maintained by @Avanae and @ThePolyphia and @Xeveral

Runescape: The private server project. A Runescape private server based on the 2009 era. This repository contains the code for the Runescape private s

Oct 1, 2022

Plugin for Spigot, PaperMC, BungeeCord and Velocity to create custom MOTDs, playercount message and playercount hover with priorities and conditions.

AdvancedServerList AdvancedServerList is a server and proxy plugin that allows you to create custom MOTDs and more in your server list with priority a

Dec 14, 2022

An Open-Source repository 🌎 that contains all the Data Structures and Algorithms concepts and their implementation, programming questions and Interview questions

An Open-Source repository 🌎 that contains all the Data Structures and Algorithms concepts and their implementation, programming questions and Interview questions

An Open-Source repository 🌎 that contains all the Data Structures and Algorithms concepts and their implementation, programming questions and Interview questions. The main aim of this repository is to help students who are learning Data Structures and Algorithms or preparing for an interview.

Dec 29, 2022

source code of the live coding demo for "Building resilient and scalable API backends with Apache Pulsar and Spring Reactive" talk held at ApacheCon@Home 2021

reactive-iot-backend The is the source code of the live coding demo for "Building resilient and scalable API backends with Apache Pulsar and Spring Re

Jan 13, 2022

Simple and lightweight application which is checking status of your web services and send a notification if it is down.

rose-uptimer Simple and lightweight application which is checking status of your web services and send a notification if it is down. Example configura

Sep 25, 2022

A complete and performing library to highlight text snippets (EditText, SpannableString and TextView) using Spannable with Regular Expressions (Regex) for Android.

A complete and performing library to highlight text snippets (EditText, SpannableString and TextView) using Spannable with Regular Expressions (Regex) for Android.

Highlight A complete and performing library to highlight text snippets (EditText/Editable and TextView) using Spannable with Regular Expressions (Rege

Dec 22, 2022

A distributed lock that supports the use of Redis and Zookeeper, out of the box, fast and easy to use

lock-spring-boot-starter A distributed lock that supports the use of Redis and Zookeeper, out of the box, fast and easy to use 一款基于 Redis 和 Zookeeper

Oct 15, 2022
Comments
  • C++ rewrite tracking

    C++ rewrite tracking

    A small writeup of what's implemented/set up and what's not:

    • [x] CoreLib
    • [ ] MathLib, in particular
      • [ ] Decode
      • [ ] Encode
      • [ ] Pattern matching
      • [x] Primes until
      • [x] A prime counting function
      • [ ] Median
      • [x] Average
      • [ ] Standard deviation
      • [ ] Variance
      • [x] Re(z), Im(z)
      • [x] Phasor
      • [ ] Polynomial operations?
      • [x] Forceful conversions between complex numbers, reals and integers.
      • [ ] Derivative in point
      • [ ] Numerical integration (Simpson algorithm?)
      • [ ] Root-finding (useful for discovering eigenvalues when using the Fadeev-LaVerrier algorithm)
    • [ ] RegexLib
      • [ ] Matching
      • [ ] Replacing
      • [ ] Splitting
      • [ ] Translation
    • [ ] StrLib
    • [ ] Matrices
    • [ ] Symbolic computation
    • [ ] Optimisations
    • [ ] Garbage collector for handling weird edge cases
    • [x] FoldLib
    • [ ] IOLib
    • [ ] Unit tests
    • [ ] CI
    opened by kspalaiologos 0
Releases(v0.2a)
Owner
Kamila Szewczyk
(she/her) mathematician, array lang & low level programming; 18yo girl
Kamila Szewczyk
BRVAH:Powerful and flexible RecyclerAdapter

BRVAH http://www.recyclerview.org/ Powerful and flexible RecyclerView Adapter, Please feel free to use this. (Welcome to Star and Fork) 强大而灵活的Recycler

陈宇明 23.3k Jan 4, 2023
An extremely flexible yet vanilla-esque multiblock mod, that embraces aspects of MultiblockTweaker and Modular Machinery.

Multiblocked Multiblocked (mbd) is an extremely flexible yet vanilla-esque multiblock mod, that embraces aspects of MultiblockTweaker and Modular Mach

Cleanroom 36 Jan 4, 2023
Universal, flexible, high-performance distributed ID generator

CosId Universal, flexible, high-performance distributed ID generator 中文文档 Introduction CosId aims to provide a universal, flexible and high-performanc

Ahoo Wang 256 Dec 27, 2022
A springboot starter for retrofit, and supports many functional feature enhancements, greatly simplifying development

retrofit-spring-boot-starter English Document Retrofit是适用于Android和Java且类型安全的HTTP客户端,其最大的特性的是支持通过接口的方式发起HTTP请求。而spring-boot是使用最广泛的Java开发框架,但是Retrofit官方

Ke Technologies 1.4k Jan 5, 2023
This project archetype is a template for creating a fully functional MVC web application using Hibernate, JSTL and Bootstrap

This project archetype is a template for creating a fully functional MVC web application using Hibernate, JSTL and Bootstrap. It has an automatic database creation, auto initial load of the data, with different variety of users. It also has a checkstyle to check the proper coding of your project immediately right after you enter the code.

null 90 Oct 21, 2022
Simple micro web framework written in Pragmatic Functional Java style

Pragmatica REST Example Example nano web framework written in Pragmatic Functional Java style. Example public class App { public static void main(

Sergiy Yevtushenko 8 Oct 21, 2022
The Apache Software Foundation 605 Dec 30, 2022
A suite of software tools and services created to support activity planning and sequencing needs of missions with modeling, simulation, scheduling and validation capabilities

Aerie A suite of software tools and services created to support activity planning and sequencing needs of missions with modeling, simulation, scheduli

NASA Advanced Multi-Mission Operations System 31 Jan 3, 2023
A compact and highly efficient workflow and Business Process Management (BPM) platform for developers, system admins and business users.

Flowable (V6) Maven Central: Docker Images: License: Homepage: https://www.flowable.org/ flowable / flowəb(ə)l / a compact and highly efficient workfl

Flowable 6k Jan 7, 2023
InterfaceMaker is a modern plugin to handle and customize join items, hotbars and menus with a developer and administrator friendly API.

Interface Maker InterfaceMaker is a modern plugin to handle and customize join items, hotbars and menus with a developer friendly API. Features Simple

2LStudios - Minecraft 10 Nov 27, 2022