EchoLisp
EchoLisp is a javascript implementation of a Scheme-like Lisp. EchoLisp includes lexical scoping, tail call elimination, access to the browser local storage, a graphical library, complex numbers, large integers, a JSON library, {sets}, streams, syntax rules, background operations for complex drawings, CSS styled objects, rational numbers, access to javascript IndexedDB, auto-completion, and extensive on-line help.
EchoLisp runs in a browser window. Validated under FireFox, Chrome and Safari.
The reference manual is here: https://www.echolalie.org/echolisp/help.html. To run EchoLisp: https://www.echolalie.org/echolisp/.
Tasks
- 100 doors
- 24 game
- 24 game/Solve
- A+B
- ABC Problem
- AKS test for primes
- Abundant, deficient and perfect number classifications
- Accumulator factory
- Active object
- Addition chains
- Aliquot sequence classifications
- Almost prime
- Amicable pairs
- Anagrams
- Anagrams/Deranged anagrams
- Anonymous recursion
- Apply a callback to an array
- Arbitrary-precision integers (included)
- Arithmetic-geometric mean
- Arithmetic/Complex
- Arithmetic/Rational
- Array concatenation
- Array length
- Assertions
- Associative array/Creation
- Associative array/Iteration
- Average loop length
- Averages/Arithmetic mean
- Averages/Mean angle
- Averages/Mean time of day
- Averages/Median
- Averages/Mode
- Averages/Pythagorean means
- Averages/Root mean square
- Averages/Simple moving average
- Balanced brackets
- Bernoulli numbers
- Binary digits
- Boolean values
- CSV data manipulation
- CSV to HTML translation
- Carmichael 3 strong pseudoprimes
- Case-sensitivity of identifiers
- Catalan numbers
- Catalan numbers/Pascal's triangle
- Catamorphism
- Check Machin-like formulas
- Chinese remainder theorem
- Cipolla's algorithm
- Classes
- Closures/Value capture
- Collections
- Combinations
- Combinations and permutations
- Combinations with repetitions
- Comma quibbling
- Comments
- Compile-time calculation
- Compound data type
- Concurrent computing
- Constrained random points on a circle
- Convert decimal number to rational
- Copy a string
- Count in factors
- Count occurrences of a substring
- Count the coins
- Cramer's rule
- Create a file
- Create an HTML table
- Currying
- Date manipulation
- Define a primitive data type
- Determinant and permanent
- Determine if a string is numeric
- Dinesman's multiple-dwelling problem
- Dining philosophers
- Display a linear combination
- Dot product
- Elementary cellular automaton
- Elliptic curve arithmetic
- Empty program
- Entropy
- Euler's sum of powers conjecture
- Evolutionary algorithm
- Exceptions/Catch an exception thrown in a nested call
- Execute a Markov algorithm
- Exponentiation operator
- Exponentiation order
- Extend your language
- Extensible prime generator
- Factorial
- Factors of a Mersenne number
- Factors of an integer
- Farey sequence
- Fast Fourier transform
- Faulhaber's formula
- Fibonacci n-step number sequences
- Fibonacci sequence
- Fibonacci word
- Filter
- Find the missing permutation
- First class environments
- First-class functions
- Flatten a list
- Floyd-Warshall algorithm
- Formal power series
- Forward difference
- Function composition
- Function definition
- GUI component interaction
- Generate Chess960 starting position
- Generate lower case ASCII alphabet
- Generator/Exponential
- Generic swap
- Geometric algebra
- Greatest element of a list
- Greatest subsequential sum
- Guess the number/With feedback
- HTTP
- HTTPS
- Harshad or Niven series
- Hash from two arrays
- Hello world!
- Hello world/Graphical
- Hello world/Line printer
- Hello world/Newbie
- Hello world/Newline omission
- Hello world/Text
- Here document
- Heronian triangles
- History variables
- Hofstadter Figure-Figure sequences
- Hofstadter Q sequence
- Hofstadter-Conway $10,000 sequence
- Horner's rule for polynomial evaluation
- Increment a numerical string
- Integer sequence
- Interactive programming
- Introspection
- Inverted index
- Inverted syntax
- JSON
- Josephus problem
- Kahan summation
- Keyboard macros
- Knapsack problem/0-1
- Knapsack problem/Continuous
- Knapsack problem/Unbounded
- Knight's tour
- Knuth shuffle
- Knuth's power tree
- LU decomposition
- Langton's ant
- Least common multiple
- Left factorials
- Letter frequency
- Levenshtein distance
- List comprehensions
- Long multiplication
- Longest common prefix
- Look-and-say sequence
- Loop over multiple arrays simultaneously
- Loops/Downward for
- Loops/For with a specified step
- Loops/Foreach
- Loops/N plus one half
- Loops/Nested
- Loops/While
- Lucas-Lehmer test
- Luhn test of credit card numbers
- Magic squares of odd order
- Man or boy test
- Mandelbrot set
- Map range
- Matrix transposition
- Metered concurrency
- Miller–Rabin primality test
- Modular exponentiation
- Modular inverse
- Monads/List monad
- Monads/Maybe monad
- Monads/Writer monad
- Morse code
- Multi-dimensional array
- Multiple distinct objects
- Multiplication tables
- Multiplicative order
- Munching squares
- N-queens problem
- Nonoblock
- Null object
- Object serialization
- Odd word problem
- Order disjoint list items
- Ordered Partitions
- Ordered words
- Palindrome detection
- Parsing/RPN calculator algorithm
- Parsing/RPN to infix conversion
- Parsing/Shunting-yard algorithm
- Pattern matching
- Percolation/Mean cluster density
- Percolation/Mean run density
- Perfect shuffle
- Permutations by swapping
- Permutations with repetitions
- Permutations/Derangements
- Pernicious numbers
- Phrase reversals
- Pick random element
- Plot coordinate pairs
- Pointers and references
- Polymorphic copy
- Polymorphism
- Power set
- Primality by trial division
- Prime conspiracy
- Prime decomposition
- Priority queue
- Program name
- Proper divisors
- Queue/Definition
- Railway circuit
- Random number generator (device)
- Random number generator (included)
- Range expansion
- Range extraction
- Read a configuration file
- Rep-string
- Repeat
- Return multiple values
- Reverse a string
- Reverse words in a string
- Roots of a function
- Roots of unity
- Runtime evaluation
- Runtime evaluation/In an environment
- S-Expressions
- Search a list of records
- Self-referential sequence
- Semiprime
- Semordnilap
- Separate the house number from the street name
- Sequence of non-squares
- Sequence of primes by trial division
- Sequence of primorial primes
- Set
- Set consolidation
- Set of real numbers
- Set puzzle
- Sieve of Eratosthenes
- Simple windowed application
- Simulated annealing
- Singly-linked list/Element insertion
- Singly-linked list/Traversal
- Sort an array of composite structures
- Sort disjoint sublist
- Sorting algorithms/Bubble sort
- Sorting algorithms/Heapsort
- Sorting algorithms/Permutation sort
- Sorting algorithms/Quicksort
- Sorting algorithms/Selection sort
- Stable marriage problem
- Stack
- Stair-climbing puzzle
- Starting a web browser
- Stern-Brocot sequence
- String append
- String case
- String interpolation (included)
- String matching
- String prepend
- Strip a set of characters from a string
- Strip whitespace from a string/Top and tail
- Subset sum problem
- Sum multiples of 3 and 5
- Sum of a series
- Superellipse
- Synchronous concurrency
- Table creation/Postal addresses
- Tamagotchi emulator
- Taxicab numbers
- Terminal control/Display an extended character
- Test a function
- Tonelli-Shanks algorithm
- Top rank per group
- Topological sort
- Total circles area
- Trabb Pardo–Knuth algorithm
- Truncatable primes
- Ulam spiral (for primes)
- Unicode variable names
- Universal Turing machine
- Unix/ls
- Vector products
- Y combinator
- Zebra puzzle
- Zeckendorf number representation
- Zero to the zero power