A collection of PicoLisp examples
1. PicoLisp examples on PLEAC
On PLEAC you can find a lot of examples.The original problems to be solved come from the well known "Perl Cookbook".
Since PLEAC isn't updated much anymore, we did an effort to prevent that those examples would become extinct.
Hence we copied and enhanced those examples to this Wiki.
The original examples were created by Alexander Burger, the creator of PicoLisp.
2. PicoLisp examples on Rosettacode
On Rosettacode you can find a wealth of examples on a huge range of common programming problems.What is very interesting is that people have created solutions to many of those problems in a large number of different programming languages.
Thus it is a rich source to learn a lot about programming languages, as well as algorithms!
PicoLisp on Rosettacode
3. Examples by category
A separate page on different examples by problem category By Category4. Examples on PicoLisp functions
A (hopefully growing) set of example on specific PicoLisp functions. de5. Useful links to other PicoLisp documentation
- Alexander Burger on Twitter
- Buy a PicoLisp T-shirt
- Hire the best PicoLisp guru's
- Picolisp XML exploration
- Playing with PicoLisp
- Programming the Mizar32 board
- Run PicoLisp on jdoodle.com
- Tractatus Pico-Blaesicus
- Open Source PicoLisp libraries
6. Direct link to Rosettacode picolisp examples
- 100 doors
- 2048
- 24 game
- 24 game/Solve
- 9 billion names of God the integer
- 99 Bottles of Beer/Lisp
- A+B
- ABC Problem
- Abstract type
- Abundant odd numbers
- Abundant, deficient and perfect number classifications
- Accumulator factory
- Ackermann function
- Active Directory/Connect
- Active Directory/Search for a user
- Active object
- Add a variable to a class instance at runtime
- Address of a variable
- AKS test for primes
- Align columns
- Almost prime
- Amb
- Amicable pairs
- Anagrams
- Anagrams/Deranged anagrams
- Animate a pendulum
- Animation
- Anonymous recursion
- Anti-primes
- Append a record to the end of a text file
- Apply a callback to an array
- Arbitrary-precision integers (included)
- Arena storage pool
- Arithmetic evaluation
- Arithmetic-geometric mean
- Arithmetic-geometric mean/Calculate Pi
- Arithmetic/Complex
- Arithmetic/Integer
- Arithmetic/Rational
- Array concatenation
- Array length
- Arrays
- Assertions
- Associative array/Creation
- Associative array/Iteration
- Atomic updates
- 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
- Babbage problem
- Balanced brackets
- Balanced ternary
- Barnsley fern
- Base58Check encoding
- Base64 decode data
- Base64 encode data
- Bell numbers
- Benford's law
- Bernoulli numbers
- Best shuffle
- Binary digits
- Binary search
- Binary strings
- Bitcoin/address validation
- Bitcoin/public point to address
- Bitmap
- Bitmap/Bresenham's line algorithm
- Bitmap/Bézier curves/Cubic
- Bitmap/Bézier curves/Quadratic
- Bitmap/Flood fill
- Bitmap/Histogram
- Bitmap/Midpoint circle algorithm
- Bitmap/PPM conversion through a pipe
- Bitmap/Read a PPM file
- Bitmap/Read an image through a pipe
- Bitmap/Write a PPM file
- Bitwise IO
- Bitwise operations
- Boolean values
- Box the compass
- Brace expansion
- Break OO privacy
- Brownian tree
- Bulls and cows
- Bulls and cows/Player
- Caesar cipher
- Calculating the value of e
- Calendar
- Calendar - for "REAL" programmers
- Call a foreign-language function
- Call a function
- Call a function in a shared library
- Call an object method
- Card shuffles
- Carmichael 3 strong pseudoprimes
- Cartesian product of two or more lists
- Case-sensitivity of identifiers
- Casting out nines
- Catalan numbers
- Catalan numbers/Pascal's triangle
- Catamorphism
- Character codes
- Chat server
- Check that file exists
- Checkpoint synchronization
- Chess player
- Chinese remainder theorem
- Cholesky decomposition
- Chowla numbers
- Cipolla's algorithm
- Classes
- Closest-pair problem
- Closures/Value capture
- Collections
- Color of a screen pixel
- Colour bars/Display
- Colour pinstripe/Display
- Colour pinstripe/Printer
- Combinations
- Combinations with repetitions
- Comma quibbling
- Command-line arguments
- Comments
- Compare a list of strings
- Compile-time calculation
- Compound data type
- Concurrent computing
- Conditional structures
- Constrained genericity
- Constrained random points on a circle
- Continued fraction
- Convert seconds to compound duration
- Conway's Game of Life
- Copy a string
- Copy stdin to stdout
- Count in factors
- Count in octal
- Count occurrences of a substring
- Count the coins
- CRC-32
- Create a file
- Create a file on magnetic tape
- Create a two-dimensional array at runtime
- Create an HTML table
- Create an object at a given address
- CSV data manipulation
- CSV to HTML translation
- Cumulative standard deviation
- Currency
- Currying
- CUSIP
- Damm algorithm
- Date format
- Date manipulation
- Day of the week
- Deal cards for FreeCell
- Decision tables
- Deconvolution/1D
- Deepcopy
- Define a primitive data type
- Delegates
- Delete a file
- Department Numbers
- Detect division by zero
- Determine if a string has all the same characters
- Determine if a string has all unique characters
- Determine if a string is numeric
- Determine if only one instance is running
- Digital root
- Dijkstra's algorithm
- Dinesman's multiple-dwelling problem
- Dining philosophers
- Discordian date
- Distributed programming
- DNS query
- Documentation
- Dot product
- Doubly-linked list/Definition
- Doubly-linked list/Element definition
- Doubly-linked list/Element insertion
- Doubly-linked list/Traversal
- Dragon curve
- Draw a clock
- Draw a cuboid
- Draw a sphere
- Dutch national flag problem
- Dynamic variable names
- Eban numbers
- Echo server
- Egyptian division
- Element-wise operations
- Elementary cellular automaton
- Emirp primes
- Empty directory
- Empty program
- Empty string
- Enforced immutability
- Entropy
- Entropy/Narcissist
- Enumerations
- Environment variables
- Equilibrium index
- Ethiopian multiplication
- Euler method
- Euler's sum of powers conjecture
- Evaluate binomial coefficients
- Even or odd
- Events
- Evolutionary algorithm
- Exceptions
- Exceptions/Catch an exception thrown in a nested call
- Executable library
- Execute a Markov algorithm
- Execute a system command
- Execute Brain****
- Execute HQ9+
- Execute SNUSP
- Exponentiation operator
- Exponentiation order
- Extend your language
- Extensible prime generator
- Extract file extension
- Extreme floating point values
- Factorial
- Factors of a Mersenne number
- Factors of an integer
- Fast Fourier transform
- FASTA format
- Fibonacci n-step number sequences
- Fibonacci sequence
- File input/output
- File modification time
- File size
- Filter
- Find common directory path
- Find duplicate files
- Find first and last set bit of a long integer
- Find limit of recursion
- Find palindromic numbers in both binary and ternary bases
- Find the last Sunday of each month
- Find the missing permutation
- Finite state machine
- First class environments
- First-class functions
- First-class functions/Use numbers analogously
- Five weekends
- Fivenum
- FizzBuzz
- Flatten a list
- Flow-control structures
- Floyd's triangle
- Forest fire
- Fork
- Formal power series
- Formatted numeric output
- Forward difference
- Four bit adder
- Fractal tree
- FTP
- Function composition
- Function definition
- Function frequency
- Galton box animation
- Gamma function
- General FizzBuzz
- Generate Chess960 starting position
- Generate lower case ASCII alphabet
- Generate random chess position
- Generator/Exponential
- Generic swap
- Get system command output
- Globally replace text in several files
- Go Fish
- Gray code
- Grayscale image
- Greatest common divisor
- Greatest element of a list
- Greatest subsequential sum
- Greyscale bars/Display
- Guess the number
- Guess the number/With feedback
- Guess the number/With feedback (player)
- GUI component interaction
- GUI enabling/disabling of controls
- GUI/Maximum window dimensions
- Hailstone sequence
- Hamming numbers
- Handle a signal
- Happy numbers
- Harshad or Niven series
- Hash from two arrays
- Hash join
- Haversine formula
- Hello world/Graphical
- Hello world/Line printer
- Hello world/Newbie
- Hello world/Newline omission
- Hello world/Standard error
- Hello world/Text
- Hello world/Web server
- Here document
- Hickerson series of almost integers
- Higher-order functions
- History variables
- Hofstadter Figure-Figure sequences
- Hofstadter Q sequence
- Hofstadter-Conway $10,000 sequence
- Holidays related to Easter
- Horizontal sundial calculations
- Horner's rule for polynomial evaluation
- Host introspection
- Hostname
- HTTP
- HTTPS
- HTTPS/Authenticated
- HTTPS/Client-authenticated
- Huffman coding
- I before E except after C
- IBAN
- Identity matrix
- Image convolution
- Image noise
- Include a file
- Increment a numerical string
- Infinity
- Inheritance/Multiple
- Inheritance/Single
- Input loop
- Integer comparison
- Integer overflow
- Integer sequence
- Interactive programming
- Introspection
- Inverted index
- Inverted syntax
- IPC via named pipe
- ISBN13 check digit
- Iterated digits squaring
- Jensen's Device
- JortSort
- Josephus problem
- Joystick position
- JSON - OUTDATED: A JSON library now exists
- Jump anywhere
- Kaprekar numbers
- Kernighans large earthquake problem
- Keyboard input/Flush the keyboard buffer
- Keyboard input/Keypress check
- Keyboard input/Obtain a Y or N response
- Keyboard macros
- Knapsack problem/0-1
- Knapsack problem/Bounded
- Knapsack problem/Continuous
- Knapsack problem/Unbounded
- Knight's tour
- Knuth shuffle
- Knuth's algorithm S
- Langton's ant
- Largest int from concatenated ints
- Last Friday of each month
- Last letter-first letter
- Leap year
- Least common multiple
- Left factorials
- Leonardo numbers
- Letter frequency
- Levenshtein distance
- Linear congruential generator
- Linux CPU utilization
- List comprehensions
- Literals/Floating point
- Literals/Integer
- Literals/String
- Logical operations
- Long multiplication
- Longest common subsequence
- Longest Common Substring
- Longest increasing subsequence
- Longest string challenge
- Look-and-say sequence
- Loop over multiple arrays simultaneously
- Loops/Break
- Loops/Continue
- Loops/Do-while
- Loops/Downward for
- Loops/For
- Loops/For with a specified step
- Loops/Foreach
- Loops/Infinite
- Loops/N plus one half
- Loops/Nested
- Loops/While
- Lucas-Lehmer test
- Lucky and even lucky numbers
- Ludic numbers
- Luhn test of credit card numbers
- Lychrel numbers
- LZW compression
- MAC Vendor Lookup
- Machine code
- Mad Libs
- Magic squares of odd order
- Main step of GOST 28147-89
- Make a backup file
- Make directory path
- Man or boy test
- Mandelbrot set
- Map range
- Matrix multiplication
- Matrix transposition
- Matrix-exponentiation operator
- Maximum triangle path sum
- Maze generation
- Maze solving
- McNuggets Problem
- MD4
- MD5
- MD5/Implementation
- Median filter
- Memory allocation
- Memory layout of a data structure
- Menu
- Metaprogramming
- Metered concurrency
- Metronome
- Middle three digits
- Miller–Rabin primality test
- Minesweeper game
- Modular exponentiation
- Modular inverse
- Modulinos
- Monte Carlo methods
- Montgomery reduction
- Monty Hall problem
- Morse code
- Mouse position
- Move-to-front algorithm
- Multifactorial
- Multiline shebang
- Multiple distinct objects
- Multiple regression
- Multiplication tables
- Multisplit
- Munchausen numbers
- Mutex
- Mutual recursion
- N'th
- N-queens problem
- Named parameters
- Naming conventions
- Narcissist
- Narcissistic decimal number
- Natural sorting
- Nested function
- Non-continuous subsequences
- Non-decimal radices/Convert
- Non-decimal radices/Input
- Non-decimal radices/Output
- Nth root
- Null object
- Number names
- Number reversal game
- Numeric error propagation
- Numerical integration
- Object serialization
- Odd word problem
- Old lady swallowed a fly
- One of n lines in a file
- One-dimensional cellular automata
- OpenGL
- Operator precedence
- Optional parameters
- Order disjoint list items
- Order two numerical lists
- Ordered Partitions
- Ordered words
- Palindrome detection
- Pangram checker
- Parallel calculations
- Parametric polymorphism
- Parametrized SQL statement
- Parse an IP Address
- Parse command-line arguments
- Parse EBNF
- Parsing/RPN calculator algorithm
- Parsing/RPN to infix conversion
- Parsing/Shunting-yard algorithm
- Partial function application
- Pascal matrix generation
- Pascal's triangle
- Pascal's triangle/Puzzle
- Password generator
- Pattern matching
- Penney's game
- Percentage difference between images
- Perfect numbers
- Perfect shuffle
- Perfect totient numbers
- Permutation test
- Permutations
- Permutations by swapping
- Permutations with repetitions
- Permutations/Derangements
- Pernicious numbers
- Phrase reversals
- Pi
- Pick random element
- Pinstripe/Display
- Pinstripe/Printer
- Play recorded sounds
- Playing cards
- Plot coordinate pairs
- Pointers and references
- Poker hand analyser
- Polymorphic copy
- Polymorphism
- Polynomial long division
- Population count
- Power set
- Pragmatic directives
- Price fraction
- Primality by trial division
- Prime conspiracy
- Prime decomposition
- Primorial numbers
- Priority queue
- Probabilistic choice
- Program name
- Program termination
- Proper divisors
- Pythagorean quadruples
- Pythagorean triples
- Quaternion type
- Queue/Definition
- Queue/Usage
- Quickselect algorithm
- Quine
- Random number generator (device)
- Random number generator (included)
- Random numbers
- Range expansion
- Range extraction
- Rate counter
- Ray-casting algorithm
- Read a configuration file
- Read a file character by character/UTF8
- Read a file line by line
- Read a specific line from a file
- Read entire file
- Real constants and functions
- Record sound
- Reduced row echelon form
- Regular expressions
- Remote agent/Agent interface
- Remote agent/Agent logic
- Remote agent/Simulation
- Remove duplicate elements
- Remove lines from a file
- Rename a file
- Rendezvous
- Rep-string
- Repeat
- Repeat a string
- Respond to an unknown method call
- Return multiple values
- Reverse a string
- Reverse words in a string
- RIPEMD-160
- Rock-paper-scissors
- Roman numerals/Decode
- Roman numerals/Encode
- Roots of a function
- Roots of a quadratic function
- Roots of unity
- Rosetta Code/Count examples
- Rosetta Code/Find unimplemented tasks
- Rosetta Code/Fix code tags
- Rosetta Code/Rank languages by popularity
- Rot-13
- RSA code
- Run as a daemon or service
- Run-length encoding
- Runtime evaluation
- Runtime evaluation/In an environment
- S-Expressions
- Safe addition
- Same Fringe
- Sattolo cycle
- Scope modifiers
- Search a list
- Search a list of records
- Secure temporary file
- SEDOLs
- Selective File Copy
- Self-describing numbers
- Self-referential sequence
- Semiprime
- Semordnilap
- Send an unknown method call
- Send email
- Sequence of non-squares
- Sequence of primes by trial division
- Set
- Set consolidation
- Seven-sided dice from five-sided dice
- SHA-1
- SHA-256
- Shell one-liner
- Short-circuit evaluation
- Show the epoch
- Sierpinski carpet
- Sierpinski triangle
- Sierpinski triangle/Graphical
- Sieve of Eratosthenes
- Simple database
- Simple windowed application
- Simulate input/Keyboard
- Simulate input/Mouse
- Singleton
- Singly-linked list/Element definition
- Singly-linked list/Element insertion
- Singly-linked list/Element removal
- Singly-linked list/Traversal
- Sleep
- Smith numbers
- Snake And Ladder
- Sockets
- Sokoban
- Solve a Hidato puzzle
- Sort a list of object identifiers
- Sort an array of composite structures
- Sort an integer array
- Sort disjoint sublist
- Sort numbers lexicographically
- Sort stability
- Sort three variables
- Sort using a custom comparator
- Sorting algorithms/Bead sort
- Sorting algorithms/Bogosort
- Sorting algorithms/Bubble sort
- Sorting algorithms/Cocktail sort
- Sorting algorithms/Comb sort
- Sorting algorithms/Counting sort
- Sorting algorithms/Gnome sort
- Sorting algorithms/Heapsort
- Sorting algorithms/Insertion sort
- Sorting algorithms/Merge sort
- Sorting algorithms/Pancake sort
- Sorting algorithms/Patience sort
- Sorting algorithms/Permutation sort
- Sorting algorithms/Quicksort
- Sorting algorithms/Radix sort
- Sorting algorithms/Selection sort
- Sorting algorithms/Shell sort
- Sorting algorithms/Sleep sort
- Sorting algorithms/Stooge sort
- Sorting algorithms/Strand sort
- Soundex
- Sparkline in unicode
- Special characters
- Special variables
- Speech synthesis
- Spinning rod animation/Text
- Spiral matrix
- Split a character string based on change of character
- Stable marriage problem
- Stack
- Stack traces
- Stair-climbing puzzle
- Start from a main routine
- State name puzzle
- Statistics/Basic
- Stem-and-leaf plot
- Stern-Brocot sequence
- Straddling checkerboard
- Stream Merge
- String append
- String case
- String comparison
- String concatenation
- String interpolation (included)
- String length
- String matching
- String prepend
- Strip a set of characters from a string
- Strip block comments
- Strip comments from a string
- Strip control codes and extended characters from a string
- Strip whitespace from a string/Top and tail
- Subleq
- Subset sum problem
- Substitution Cipher
- Substring
- Substring/Top and tail
- Subtractive generator
- Sudoku
- Sum and product of an array
- Sum digits of an integer
- Sum multiples of 3 and 5
- Sum of a series
- Sum of squares
- Symmetric difference
- Synchronous concurrency
- System time
- Table creation
- Table creation/Postal addresses
- Take notes on the command line
- Taxicab numbers
- Teacup rim text
- Temperature conversion
- Terminal control/Clear the screen
- Terminal control/Coloured text
- Terminal control/Cursor movement
- Terminal control/Cursor positioning
- Terminal control/Dimensions
- Terminal control/Display an extended character
- Terminal control/Hiding the cursor
- Terminal control/Inverse video
- Terminal control/Preserve screen
- Terminal control/Ringing the terminal bell
- Terminal control/Unicode output
- Ternary logic
- Test a function
- Test integerness
- Text processing/1
- Text processing/2
- Text processing/Max licenses in use
- The ISAAC Cipher
- The Twelve Days of Christmas
- Thiele's interpolation formula
- Thue-Morse
- Tic-tac-toe
- Time a function
- Time-based One-time Password Algorithm
- Tokenize a string
- Tokenize a string with escaping
- Tonelli-Shanks algorithm
- Top rank per group
- Topic variable
- Topological sort
- Topswops
- Totient function
- Towers of Hanoi
- Trabb Pardo–Knuth algorithm
- Tree traversal
- Trigonometric functions
- Truncatable primes
- Truncate a file
- Truth table
- Two Sum
- Type detection
- Ulam spiral (for primes)
- Unbias a random generator
- Undefined values
- Unicode strings
- Unicode variable names
- Universal Turing machine
- Unix/ls
- UPC
- Update a configuration file
- URL decoding
- URL encoding
- URL shortener
- Use another language to call a function
- User input/Graphical
- User input/Text
- Validate International Securities Identification Number
- Van der Corput sequence
- Variable size/Get
- Variable size/Set
- Variable-length quantity
- Variables
- Variadic function
- Vector
- Vector products
- Verify distribution uniformity/Naive
- Vigenère cipher
- Visualize a tree
- Walk a directory/Non-recursively
- Walk a directory/Recursively
- Water collected between towers
- Web scraping
- Window creation
- Window creation/X11
- Window management
- Wireworld
- Word break problem
- Word frequency
- Word wrap
- Write entire file
- Write float arrays to a text file
- Write language name in 3D ASCII
- Write to Windows event log
- Xiaolin Wu's line algorithm
- XML/DOM serialization
- XML/Input
- XML/Output
- XML/XPath
- Y combinator
- Yahoo! search interface
- Yellowstone sequence
- Yin and yang
- Zebra puzzle
- Zeckendorf arithmetic
- Zeckendorf number representation
- Zero to the zero power
- Zig-zag matrix
- Zumkeller numbers
https://picolisp.com/wiki/?pce
05jul23 | pablo_escoberg |