# Category:Phix

**Phix**

This

**programming language**may be used to instruct a computer to perform a task.

Official website |
---|

Execution method: | Interpreted or compiled |
---|---|

Garbage collected: | Reference Counting |

Parameter passing methods: | By reference, By value |

Type expression: | Explicit |

Type checking: | Dynamic, Static |

Lang tag(s): | phix, Phix |

See Also: |

Phix is a self-hosted hybrid interpreter/compiler, developed by Pete Lomax. It is very easy to use, and similar to Euphoria.

A simple 30MB download contains a pre-compiled executable, all the sources, and* everything *needed to recompile them, in about 15 seconds. The download also contains a full-featured programmer's editor and about 500 demo programs.

You can also run Phix on replit here

Perhaps the most striking feature of Phix is that it has just five builtin data types:

<-------- object ---------> | | +-atom +-sequence | | +-integer +-string

Despite such apparent simplicity, or perhaps precisely because of it, Phix programs are pretty fast - not quite achieving the runtime performance of C or assembly, but making up for it with a very fast edit/run cycle and proper human-readable messages should anything go wrong (even in shipped pre-compiled executables). Sequences are the real powerhouse of Phix. The one type covers lists, queues, tables, trees, and arrays, with strings being the subset that is array of character. They can grow and shrink automatically without any memory management overhead. For example if `s="food"` then `s[2..3]="e"` makes `s` "fed", and then `s[2..1]="east"` makes `s` "feasted".

Phix applies the principle of least surprise, for instance in some languages `myproc(list)` or `res = myfunc(list)` can mangle list, whereas in Phix if you actually want that to happen you would code `list = myproc(list)` (and myproc would need to become a function) or `{res,list} = myfunc(list)`. Likewise 1/2 is 0.5 (not 0, unless you explicitly ask for the floor()) and 0-1 is -1 (not +MAXINT). A core tenet is that for any line of code there is one and only one possible interpretation of it, and said meaning is utterly intuitive. True fact: the given answer for the question "describe what f(a++) does" in "More Exceptional C++" lists 4 possibilities for f, and 3 for a (so 12 in total) and uses the phrase "could mean just about anything" not once but twice - shudder.

Phix is not inherently object orientated, but achieves many of the claimed benefits, yet in a much simpler way. In fact I have been looking for * proof* that object orientation actually improves productivity compared to other paradigms for decades, and never found it. Not to say that I won't support it, but I certainly won't enforce it. One other thing I have never found is a "good object orientated design", and reached the conclusion that mythical creature simply does not exist, at least not as a separate entity as opposed to some ethereal quality of the finished code. Feel free to argue that one on User_talk:Petelomax. Phix offers perfectly decent encapsulation at the file level, proving that is not the sole purview of oo, implements polymorphism far more elegantly than C-based languages and far safer than duck-typed languages, and as for the third pillar of oop, inheritance, well isn't the current mantra "favour composition over inheritance"?

The fundamental goal of Phix is to make debugging easier, a whole subject area that does not seem to get the attention it deserves, despite several studies finding that most programmers actually spend between 70 and 90% of their time debugging. (Most of us tend to think that getting just-written code to work is somehow not debugging, but that bloke with a clipboard stood behind you would disagree.)

Since 1.0.0 you can also run (many/most) Phix programs in a browser, by using pwa/p2js (as included in the distro) to transpile the program to JavaScript (plus a bit of standard HTML and CSS). If you see "with javascript_semantics" it means the program has been tested and works fine, both on the (Windows/Linux) desktop and in a browser, but obviously that won't be present on any rosettacode entries that (for instance) use the local file system (although unix_dict() has been added to avoid reading unixdict.txt). In fact, it is worth pointing out that "with js" and deep_copy() have proved *staggeringly* effective and nowhere near as painful as first feared. In just a few months (1.0.0 was released in July 2021) I have tested, fixed where necessary, and marked as javascript compatible *some 450 rosettacode entries* for Phix, and only *one tenth* of that as incompatible.

## See also[edit]

## Subcategories

This category has the following 7 subcategories, out of 7 total.

## Pages in category "Phix"

The following 1,431 pages are in this category, out of 1,431 total.

### A

- A* search algorithm
- A+B
- Abbreviations, automatic
- Abbreviations, easy
- Abbreviations, simple
- ABC problem
- ABC words
- Abelian sandpile model
- Abelian sandpile model/Identity
- 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
- Addition chains
- Addition-chain exponentiation
- Additive primes
- Address of a variable
- ADFGVX cipher
- Air mass
- AKS test for primes
- Align columns
- Aliquot sequence classifications
- Almkvist-Giullera formula for pi
- Almost prime
- Alternade words
- Amb
- Amicable pairs
- Anagrams
- Anagrams/Deranged anagrams
- Angle difference between two bearings
- Angles (geometric), normalization and conversion
- Animate a pendulum
- Animation
- Anonymous recursion
- Anti-primes
- Append a record to the end of a text file
- Apply a callback to an array
- Apply a digital filter (direct form II transposed)
- Approximate equality
- Arbitrary-precision integers (included)
- Archimedean spiral
- Arena storage pool
- Arithmetic coding/As a generalized change of radix
- Arithmetic evaluation
- Arithmetic evaluation/Phix
- Arithmetic-geometric mean
- Arithmetic-geometric mean/Calculate Pi
- Arithmetic/Complex
- Arithmetic/Integer
- Arithmetic/Rational
- Array concatenation
- Array length
- Arrays
- ASCII art diagram converter
- Aspect oriented programming
- Assertions
- Assertions in design by contract
- Associative array/Creation
- Associative array/Iteration
- Associative array/Merging
- Atomic updates
- Attractive numbers
- Audio alarm
- Audio frequency generator
- 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
- AVL tree

### B

- Babbage problem
- Bacon cipher
- Balanced brackets
- Balanced ternary
- Banker's algorithm
- Barnsley fern
- Base 16 numbers needing a to f
- Base58Check encoding
- Base64 decode data
- Base64 encode data
- Bell numbers
- Benford's law
- Bernoulli numbers
- Best shuffle
- Bilinear interpolation
- Bin given limits
- Binary digits
- Binary search
- Binary strings
- Bioinformatics/base count
- Bioinformatics/Global alignment
- Bioinformatics/Sequence mutation
- Bioinformatics/Subsequence
- Biorhythms
- Birthday problem
- 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
- Black Box
- Blackjack strategy
- Boids
- Boolean values
- Box the compass
- Brace expansion
- Brace expansion using ranges
- Brazilian numbers
- Break OO privacy
- Brownian tree
- Bulls and cows
- Bulls and cows/Player
- Burrows–Wheeler transform

### C

- Caesar cipher
- Calculating the value of e
- Calendar
- Calendar - for "REAL" programmers
- Calkin-Wilf sequence
- Call a foreign-language function
- Call a function
- Call a function in a shared library
- Call an object method
- Canny edge detector
- Canonicalize CIDR
- Cantor set
- 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
- Catmull–Clark subdivision surface
- Change e letters to i in words
- Changeable words
- Chaocipher
- Chaos game
- Character codes
- Chat server
- Chebyshev coefficients
- Check input device is a terminal
- Check Machin-like formulas
- Check output device is a terminal
- Check that file exists
- Checkpoint synchronization
- Checksumcolor
- Chemical calculator
- Chernick's Carmichael numbers
- Cheryl's birthday
- Chess player
- Chinese remainder theorem
- Chinese zodiac
- Cholesky decomposition
- Chowla numbers
- Church numerals
- Cipolla's algorithm
- Circles of given radius through two points
- Circular primes
- Cistercian numerals
- Classes
- CLI-based maze-game
- Closest-pair problem
- Closures/Value capture
- Code segment unload
- Collections
- Color of a screen pixel
- Color quantization
- Color wheel
- Colour bars/Display
- Colour pinstripe/Display
- Colour pinstripe/Printer
- Combinations
- Combinations and permutations
- Combinations with repetitions
- Combinations with repetitions/Square digit chain
- Comma quibbling
- Command-line arguments
- Commatizing numbers
- Comments
- Common list elements
- Common sorted list
- Compare a list of strings
- Compare sorting algorithms' performance
- Compile-time calculation
- Compiler/AST interpreter
- Compiler/code generator
- Compiler/lexical analyzer
- Compiler/Simple file inclusion pre processor
- Compiler/syntax analyzer
- Compiler/Verifying syntax
- Compiler/virtual machine interpreter
- Compound data type
- Concatenate two primes is also prime
- Concurrent computing
- Conditional structures
- Conjugate a Latin verb
- Conjugate transpose
- Consecutive primes with ascending or descending differences
- Constrained genericity
- Constrained random points on a circle
- Continued fraction
- Continued fraction/Arithmetic/Construct from rational number
- Continued fraction/Arithmetic/G(matrix ng, continued fraction n)
- Continued fraction/Arithmetic/G(matrix ng, continued fraction n1, continued fraction n2)
- Convert decimal number to rational
- Convert seconds to compound duration
- Convex hull
- Conway's Game of Life
- Coprime triplets
- Coprimes
- Copy a string
- Copy stdin to stdout
- Count how many vowels and consonants occur in a string
- Count in factors
- Count in octal
- Count occurrences of a substring
- Count the coins
- Count the coins/0-1
- Cousin primes
- Cramer's rule
- 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
- Create an object/Native demonstration
- CSV data manipulation
- CSV to HTML translation
- Cuban primes
- Cubic Special Primes
- Cumulative standard deviation
- Currency
- Currying
- Curve that touches three points
- CUSIP
- Cut a rectangle
- Cycle detection
- Cyclops numbers
- Cyclotomic polynomial

### D

- Damm algorithm
- Data Encryption Standard
- Date format
- Date manipulation
- Day of the week
- Days between dates
- De Bruijn sequences
- Deal cards for FreeCell
- Death Star
- Decimal floating point number to binary
- Decision tables
- Deconvolution/1D
- Deconvolution/2D+
- Deepcopy
- Define a primitive data type
- Delegates
- Delete a file
- Deming's Funnel
- Department numbers
- Detect division by zero
- Determinant and permanent
- Determine if a string has all the same characters
- Determine if a string has all unique characters
- Determine if a string is collapsible
- Determine if a string is numeric
- Determine if a string is squeezable
- Determine if only one instance is running
- Determine if two triangles overlap
- Dice game probabilities
- Digital root
- Digital root/Multiplicative digital root
- Dijkstra's algorithm
- Dinesman's multiple-dwelling problem
- Dining philosophers
- Discordian date
- Discrete Fourier transform
- Display a linear combination
- Display an outline as a nested table
- Distinct Palindromes within decimal numbers
- Distinct power numbers
- Distributed programming
- Distribution of 0 Digits in factorial series
- Diversity prediction theorem
- DNS query
- Documentation
- Doomsday rule
- Dot product
- Doubly-linked list/Definition
- Doubly-linked list/Element definition
- Doubly-linked list/Element insertion
- Doubly-linked list/Element removal
- Doubly-linked list/Traversal
- Dragon curve
- Draw a clock
- Draw a cuboid
- Draw a pixel
- Draw a rotating cube
- Draw a sphere
- Draw pixel 2
- Dutch national flag problem
- Dynamic variable names

### E

- Eban numbers
- Echo server
- Eertree
- Egyptian division
- Egyptian fractions
- EKG sequence convergence
- Element-wise operations
- Elementary cellular automaton
- Elementary cellular automaton/Infinite length
- Elementary cellular automaton/Random Number Generator
- Elevator simulation
- Elliptic curve arithmetic
- Elliptic Curve Digital Signature Algorithm
- Emirp primes
- Empty directory
- Empty program
- Empty string
- Enforced immutability
- Entropy
- Entropy/Narcissist
- Enumerations
- Environment variables
- Equilibrium index
- Erdős-primes
- Esthetic numbers
- Ethiopian multiplication
- Euler method
- Euler's identity
- 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 CopyPasta Language
- Execute HQ9+
- Execute SNUSP
- Exponentiation operator
- Exponentiation order
- Exponentiation with infix operators in (or operating on) the base
- Extend your language
- Extensible prime generator
- External sort
- Extra primes
- Extract file extension
- Extreme floating point values

### F

- Faces from a mesh
- Factorial
- Factorial base numbers indexing permutations of a collection
- Factorions
- Factors of a Mersenne number
- Factors of an integer
- Fairshare between two and more
- Farey sequence
- Fast Fourier transform
- FASTA format
- Faulhaber's formula
- Faulhaber's triangle
- Feigenbaum constant calculation
- Fermat numbers
- Fibonacci heap
- Fibonacci matrix-exponentiation
- Fibonacci n-step number sequences
- Fibonacci sequence
- Fibonacci word
- Fibonacci word/fractal
- File extension is in extensions list
- File input/output
- File modification time
- File size
- File size distribution
- Filter
- Find Chess960 starting position identifier
- Find common directory path
- Find duplicate files
- Find first and last set bit of a long integer
- Find first missing positive
- Find if a point is within a triangle
- Find largest left truncatable prime in a given base
- Find limit of recursion
- Find minimum number of coins that make a given value
- Find palindromic numbers in both binary and ternary bases
- Find prime n such that reversed n is also prime
- Find prime numbers of the form n*n*n+2
- Find the intersection of a line with a plane
- Find the intersection of two lines
- Find the last Sunday of each month
- Find the missing permutation
- Find URI in text
- Find words which contain the most consonants
- Find words which contains all the vowels
- Find words which contains more than 3 e vowels
- Find words whose first and last three letters are equal
- Find words with alternating vowels and consonants
- Finite state machine
- First class environments
- First perfect square in base n with n unique digits
- First power of 2 that has leading decimal digits of 12
- First-class functions
- First-class functions/Use numbers analogously
- Five weekends
- Fivenum
- Fixed length records
- FizzBuzz
- Flatten a list
- Flipping bits game
- Flow-control structures
- Floyd's triangle
- Floyd-Warshall algorithm
- Forest fire
- Fork
- Formal power series
- Formatted numeric output
- Fortunate numbers
- Forward difference
- Four bit adder
- Four is magic
- Four is the number of letters in the ...
- Fractal tree
- Fraction reduction
- Fractran
- Free polyominoes enumeration
- French Republican calendar
- Frobenius numbers
- FTP
- Function composition
- Function definition
- Function frequency
- Function prototype
- Functional coverage tree
- Fusc sequence

### G

- Galton box animation
- Gamma function
- Gapful numbers
- Gauss-Jordan matrix inversion
- Gaussian elimination
- General FizzBuzz
- Generalised floating point addition
- Generalised floating point multiplication
- Generate Chess960 starting position
- Generate lower case ASCII alphabet
- Generate random chess position
- Generate random numbers without repeating a value
- Generator/Exponential
- Generic swap
- Geohash
- Geometric algebra
- Get system command output
- Getting the number of decimals
- Globally replace text in several files
- Go Fish
- Gradient descent
- Graph colouring
- Gray code
- Grayscale image
- Greatest common divisor
- Greatest element of a list
- Greatest subsequential sum
- Greed
- 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

### H

- Hailstone sequence
- Halt and catch fire
- Hamming numbers
- Handle a signal
- Happy numbers
- Harmonic series
- 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
- Heronian triangles
- Hexapawn
- Hickerson series of almost integers
- Higher-order functions
- Hilbert curve
- History variables
- Hofstadter Figure-Figure sequences
- Hofstadter Q sequence
- Hofstadter-Conway $10,000 sequence
- Holidays related to Easter
- Home primes
- Honeycombs
- Horizontal sundial calculations
- Horner's rule for polynomial evaluation
- Horse racing
- Host introspection
- Hostname
- Hough transform
- Hourglass puzzle
- HTTP
- HTTPS
- HTTPS/Authenticated
- HTTPS/Client-authenticated
- Huffman coding
- Humble numbers
- Hunt the Wumpus

### I

- I before E except after C
- I'm a software engineer, get me out of here
- IBAN
- Identity matrix
- Idiomatically determine all the characters that can be used for symbols
- Idiomatically determine all the lowercase and uppercase letters
- Image convolution
- Image noise
- Imaginary base numbers
- Implicit type conversion
- Include a file
- Increasing gaps between consecutive Niven numbers
- Increment a numerical string
- Index finite lists of positive integers
- Infinity
- Inheritance/Multiple
- Inheritance/Single
- Input loop
- Input/Output for lines of text
- Input/Output for pairs of numbers
- Integer comparison
- Integer long division
- Integer overflow
- Integer roots
- Integer sequence
- Interactive help
- Interactive programming
- Intersecting number wheels
- Introspection
- Inverted index
- Inverted syntax
- ISBN13 check digit
- Isqrt (integer square root) of X
- Iterated digits squaring

### J

### K

- K-d tree
- K-means++ clustering
- Kahan summation
- 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
- Knuth's power tree
- Koch curve
- Kolakoski sequence
- Kosaraju
- Kronecker product
- Kronecker product based fractals

### L

- Lah numbers
- Langton's ant
- Largest int from concatenated ints
- Largest number divisible by its digits
- Largest proper divisor of n
- Last Friday of each month
- Last letter-first letter
- Latin Squares in reduced form
- Latin Squares in reduced form/Randomizing using Jacobson and Matthews’ Technique
- Launch rocket with countdown and acceleration in stdout
- Law of cosines - triples
- Leap year
- Least common multiple
- Left factorials
- Legendre prime counting function
- Length of an arc between two angles
- Leonardo numbers
- Letter frequency
- Levenshtein distance
- Levenshtein distance/Alignment
- Line circle intersection
- Linear congruential generator
- Linux CPU utilization
- List comprehensions
- List rooted trees
- Literals/Floating point
- Literals/Integer
- Literals/String
- Logical operations
- Logistic curve fitting in epidemiology
- Long literals, with continuations
- Long multiplication
- Long primes
- Long year
- Longest common prefix
- Longest common subsequence
- Longest common substring
- Longest common suffix
- Longest increasing subsequence
- Longest palindromic substrings
- Longest string challenge
- Longest substrings without repeating characters
- 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/Increment loop index within loop body
- Loops/Infinite
- Loops/N plus one half
- Loops/Nested
- Loops/While
- Loops/With multiple ranges
- Loops/Wrong ranges
- LU decomposition
- Lucas-Lehmer test
- Lucky and even lucky numbers
- Ludic numbers
- Luhn test of credit card numbers
- Lychrel numbers
- LZW compression

### M

- MAC Vendor Lookup
- Machine code
- Mad Libs
- Magic 8-ball
- Magic squares of doubly even order
- Magic squares of odd order
- Magic squares of singly even order
- Magnanimous numbers
- Main step of GOST 28147-89
- Make a backup file
- Make directory path
- Man or boy test
- Mandelbrot set
- Map range
- Markov chain text generator
- Mastermind
- Matrix chain multiplication
- Matrix digital rain
- Matrix multiplication
- Matrix transposition
- Matrix-exponentiation operator
- Maximum difference between adjacent elements of list
- Maximum triangle path sum
- Mayan calendar
- Mayan numerals
- Maze generation
- Maze solving
- McNuggets problem
- MD4
- MD5
- MD5/Implementation
- Median filter
- Memory allocation
- Memory layout of a data structure
- Menu
- Merge and aggregate datasets
- Mersenne primes
- Mertens function
- Metallic ratios
- Metaprogramming
- Metered concurrency
- Metronome
- Mian-Chowla sequence
- Middle three digits
- Miller–Rabin primality test
- Mind boggling card trick
- Mine a bitcoin
- Minesweeper game
- Minimal steps down to 1
- Minimum number of cells after, before, above and below NxN squares
- Minimum positive multiple in base 10 using only 0 and 1
- Minkowski question-mark function
- Modified random distribution
- Modular arithmetic
- Modular exponentiation
- Modular inverse
- Modulinos
- Monads/List monad
- Monads/Maybe monad
- Monads/Writer monad
- Monte Carlo methods
- Montgomery reduction
- Monty Hall problem
- Morpion solitaire
- Morse code
- Most frequent k chars distance
- Motzkin numbers
- Mouse position
- Move-to-front algorithm
- Multi-base primes
- Multi-dimensional array
- Multidimensional Newton-Raphson method
- Multifactorial
- Multiline shebang
- Multiple distinct objects
- Multiple regression
- Multiplication tables
- Multiplicative order
- Multisplit
- Multiton
- Munchausen numbers
- Munching squares
- Musical scale
- Mutex
- Mutual recursion
- Möbius function

### N

- N'th
- N-body problem
- N-queens problem
- N-smooth numbers
- Named parameters
- Names to numbers
- Naming conventions
- Narcissist
- Narcissistic decimal number
- Native shebang
- Natural sorting
- Nautical bell
- Negative base numbers
- Neighbour primes
- Nested function
- Nested templated data
- Next highest int from digits
- Next special primes
- Nice primes
- Nim game
- Nimber arithmetic
- Non-continuous subsequences
- Non-decimal radices/Convert
- Non-decimal radices/Input
- Non-decimal radices/Output
- Non-transitive dice
- Nonoblock
- Nonogram solver
- Nth root
- Null object
- Number names
- Number reversal game
- Number triplets game
- Numbers divisible by their individual digits, but not by the product of their digits.
- Numbers in base 10 that are palindromic in bases 2, 4, and 16
- Numbers in base-16 representation that cannot be written with decimal digits
- Numbers which binary and ternary digit sum are prime
- Numbers whose count of divisors is prime
- Numbers with equal rises and falls
- Numbers with prime digits whose sum is 13
- Numbers with same digit set in base 10 and base 16
- Numeric error propagation
- Numeric separator syntax
- Numerical and alphabetical suffixes
- Numerical integration
- Numerical integration/Adaptive Simpson's method
- Numerical integration/Gauss-Legendre Quadrature
- NYSIIS

### O

- Object serialization
- Odd squarefree semiprimes
- Odd word problem
- Odd words
- Old lady swallowed a fly
- Old Russian measure of length
- OLE automation
- One of n lines in a file
- One-dimensional cellular automata
- One-time pad
- OpenGL
- OpenGL pixel shader
- OpenGL/Utah Teapot
- OpenWebNet password
- Operator precedence
- Optional parameters
- Orbital elements
- Order by pair comparisons
- Order disjoint list items
- Order two numerical lists
- Ordered partitions
- Ordered words
- Overloaded operators

### P

- P-Adic numbers, basic
- P-Adic square roots
- P-value correction
- Padovan n-step number sequences
- Padovan sequence
- Palindrome dates
- Palindrome detection
- Palindromic gapful numbers
- Palindromic primes
- Palindromic primes in base 16
- Pancake numbers
- Pandigital prime
- Pangram checker
- Paraffins
- Parallel brute force
- 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
- Particle fountain
- Particle swarm optimization
- Partition an integer x into n primes
- Partition function P
- Pascal matrix generation
- Pascal's triangle
- Pascal's triangle/Puzzle
- Password generator
- Pathological floating point problems
- Pattern matching
- Peaceful chess queen armies
- Peano curve
- Pell's equation
- Penney's game
- Penrose tiling
- Pentagram
- Pentomino tiling
- Percentage difference between images
- Perceptron
- Percolation/Bond percolation
- Percolation/Mean cluster density
- Percolation/Mean run density
- Percolation/Site percolation
- Perfect numbers
- Perfect shuffle
- Perfect totient numbers
- Peripheral drift illusion
- Perlin noise
- Permutation test
- Permutations
- Permutations by swapping
- Permutations with repetitions
- Permutations with some identical elements
- Permutations/Derangements
- Permutations/Rank of a permutation
- Permuted multiples
- Pernicious numbers
- Phrase reversals
- Pi
- Pick random element
- Pierpont primes
- Pig the dice game
- Pig the dice game/Player
- Pinstripe/Display
- Pinstripe/Printer
- Piprimes
- Pisano period
- Plasma effect
- Play recorded sounds
- Playfair cipher
- Playing cards
- Plot coordinate pairs
- Pointers and references
- Poker hand analyser
- Polymorphic copy
- Polymorphism
- Polynomial long division
- Polynomial regression
- Polynomial synthetic division
- Polyspiral
- Population count
- Positive decimal integers with the digit 1 occurring exactly twice
- Power set
- Powerful numbers
- Practical numbers
- Pragmatic directives
- Price fraction
- Price list behind API
- Primality by trial division
- Primality by Wilson's theorem
- Prime conspiracy
- Prime decomposition
- Prime numbers p which sum of prime numbers less or equal to p is prime
- Prime numbers which contain 123
- Prime triplets
- Prime words
- Primes - allocate descendants to their ancestors
- Primes which contain only one odd digit
- Primes whose first and last number is 3
- Primes whose sum of digits is 25
- Primes with digits in nondecreasing order
- Primorial numbers
- Print debugging statement
- Print itself
- Priority queue
- Probabilistic choice
- Problem of Apollonius
- Process SMIL directives in XML data
- Product of decimal digits of n
- Product of divisors
- Program name
- Program termination
- Proof
- Proper divisors
- Pseudo-random numbers/Combined recursive generator MRG32k3a
- Pseudo-random numbers/PCG32
- Pseudo-random numbers/Splitmix64
- Pseudo-random numbers/Xorshift star
- Pseudorandom number generator image
- Pythagoras tree
- Pythagorean quadruples
- Pythagorean triples

### Q

### R

- Railway circuit
- Ramanujan primes
- Ramanujan primes/twins
- Ramanujan's constant
- Ramer-Douglas-Peucker line simplification
- Ramsey's theorem
- Random Latin squares
- Random number generator (device)
- Random number generator (included)
- Random numbers
- Random sentence from book
- Range consolidation
- Range expansion
- Range extraction
- Range modifications
- Ranking methods
- Rare numbers
- Raster bars
- Rate counter
- Ray-casting algorithm
- RCRPG
- 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
- Readline interface
- Real constants and functions
- Recaman's sequence
- Record sound
- Recursive descent parser generator
- Reduced row echelon form
- Reflection/Get source
- Reflection/List methods
- Reflection/List properties
- Regular expressions
- Remote agent/Agent interface
- Remote agent/Agent logic
- Remote agent/Simulation
- Remove duplicate elements
- Remove lines from a file
- Remove vowels from a string
- Rename a file
- Rendezvous
- Rep-string
- Repeat
- Repeat a string
- Resistance calculator
- Resistance network calculator
- Resistor mesh
- Respond to an unknown method call
- Retrieve and search chat history
- Return multiple values
- Reverse a string
- Reverse the gender of a string
- Reverse the order of lines in a text file while preserving the contents of each line
- Reverse words in a string
- RIPEMD-160
- Robots
- 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 bare lang tags
- Rosetta Code/Find unimplemented tasks
- Rosetta Code/Fix code tags
- Rosetta Code/List authors of task descriptions
- Rosetta Code/Rank languages by number of users
- Rosetta Code/Rank languages by popularity
- Rosetta Code/Tasks without examples
- Rot-13
- RPG attributes generator
- RSA code
- Run as a daemon or service
- Run-length encoding
- Runge-Kutta method

### S

- S-expressions
- Safe addition
- Safe mode
- Safe primes and unsafe primes
- Sailors, coconuts and a monkey problem
- Same fringe
- Sanitize user input
- Sattolo cycle
- Scope modifiers
- Scope/Function names and labels
- Search a list
- Search a list of records
- Secure temporary file
- SEDOLs
- Selective file copy
- Self numbers
- Self-describing numbers
- Self-hosting compiler
- Semiprime
- Semordnilap
- Send an unknown method call
- Send email
- Separate the house number from the street name
- Sequence of non-squares
- Sequence of primes by trial division
- Sequence of primorial primes
- Sequence: nth number with exactly n divisors
- Sequence: smallest number greater than previous term with exactly n divisors
- Sequence: smallest number with exactly n divisors
- Set
- Set consolidation
- Set of real numbers
- Set puzzle
- Seven-sided dice from five-sided dice
- Sexy primes
- SHA-1
- SHA-256
- SHA-256 Merkle tree
- Shell one-liner
- Shift list elements to left by 3
- Shoelace formula for polygonal area
- Short-circuit evaluation
- Shortest common supersequence
- Show ASCII table
- Show the (decimal) value of a number of 1s appended with a 3, then squared
- Show the epoch
- Sierpinski arrowhead curve
- Sierpinski carpet
- Sierpinski curve
- Sierpinski square curve
- Sierpinski triangle
- Sierpinski triangle/Graphical
- Sieve of Eratosthenes
- Simple database
- Simple turtle graphics
- Simple windowed application
- Simulate input/Keyboard
- Simulate input/Mouse
- Simulated annealing
- Sine wave
- Singleton
- Singly-linked list/Element definition
- Singly-linked list/Element insertion
- Singly-linked list/Element removal
- Singly-linked list/Traversal
- Sleep
- Sleeping Beauty problem
- Smallest enclosing circle problem
- Smallest numbers
- Smallest power of 6 whose decimal expansion contains n
- Smallest square that begins with n
- Smarandache prime-digital sequence
- Smith numbers
- Snake
- Snake and Ladder
- SOAP
- Sockets
- Sokoban
- Solve a Hidato puzzle
- Solve a Holy Knight's tour
- Solve a Hopido puzzle
- Solve a Numbrix puzzle
- Solve a Rubik's Cube
- Solve the no connection puzzle
- Solve triangle solitare puzzle
- Solving coin problems
- Sort a list of object identifiers
- Sort an array of composite structures
- Sort an integer array
- Sort an outline at every level
- Sort disjoint sublist
- Sort numbers lexicographically
- Sort stability
- Sort the letters of string in alphabetical order
- Sort three variables
- Sort using a custom comparator
- Sorting algorithms/Bead sort
- Sorting algorithms/Bogosort
- Sorting algorithms/Bubble sort
- Sorting Algorithms/Circle Sort
- Sorting algorithms/Cocktail sort
- Sorting algorithms/Cocktail sort with shifting bounds
- Sorting algorithms/Comb sort
- Sorting algorithms/Counting sort
- Sorting algorithms/Cycle 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
- Sorting algorithms/Tree sort on a linked list
- Soundex
- Sparkline in unicode
- Special characters
- Special Divisors
- Special factorials
- Special neighbor primes
- Special pythagorean triplet
- Special variables
- Speech synthesis
- Spelling of ordinal numbers
- Spinning rod animation/Text
- Spiral matrix
- Split a character string based on change of character
- Spoof game
- SQL-based authentication
- Square but not cube
- Square form factorization
- Square root by hand
- Square-free integers
- Stable marriage problem
- Stack
- Stack traces
- Stair-climbing puzzle
- Start from a main routine
- Starting a web browser
- State name puzzle
- Statistics/Basic
- Statistics/Normal distribution
- Stem-and-leaf plot
- Stern-Brocot sequence
- Stirling numbers of the first kind
- Stirling numbers of the second kind
- Straddling checkerboard
- Strange numbers
- Strange plus numbers
- Strange unique prime triplets
- Strassen's algorithm
- 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
- Strong and weak primes
- Subleq
- Subset sum problem
- Substitution cipher
- Substring
- Substring primes
- Substring/Top and tail
- Subtractive generator
- Successive prime differences
- Sudoku
- Suffix tree
- Suffixation of decimal numbers
- Sum and product of an array
- Sum and product puzzle
- Sum data type
- Sum digits of an integer
- Sum multiples of 3 and 5
- Sum of a series
- Sum of divisors
- Sum of elements below main diagonal of matrix
- Sum of first n cubes
- Sum of primes in odd positions is prime
- Sum of squares
- Sum of the digits of n is substring of n
- Sum to 100
- Summarize and say sequence
- Summarize primes
- Sunflower fractal
- Super-d numbers
- Superellipse
- Superpermutation minimisation
- Sutherland-Hodgman polygon clipping
- Sylvester's sequence
- Symmetric difference
- Synchronous concurrency
- System time

### T

- Table creation
- Table creation/Postal addresses
- Take notes on the command line
- Tamagotchi emulator
- Tarjan
- Tau function
- Tau number
- 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/Positional read
- Terminal control/Preserve screen
- Terminal control/Restricted width positional input/No wrapping
- Terminal control/Restricted width positional input/With wrapping
- Terminal control/Ringing the terminal bell
- Terminal control/Unicode output
- Ternary logic
- Test a function
- Test integerness
- Tetris
- Text between
- Text completion
- Text processing/1
- Text processing/2
- Text processing/Max licenses in use
- Text to HTML
- Textonyms
- The ISAAC Cipher
- The Name Game
- The sieve of Sundaram
- The Twelve Days of Christmas
- Thiele's interpolation formula
- Three word location
- 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
- Topological sort/Extracted top item
- Topswops
- Total circles area
- Totient function
- Towers of Hanoi
- Trabb Pardo–Knuth algorithm
- Transportation problem
- Tree datastructures
- Tree from nesting levels
- Tree traversal
- Trigonometric functions
- Triplet of three numbers
- Tropical algebra overloading
- Truncatable primes
- Truncate a file
- Truth table
- Twelve statements
- Twin primes
- Two bullet roulette
- Two identical strings
- Two sum
- Type detection

### U

- Ukkonen’s suffix tree construction
- Ulam numbers
- Ulam spiral (for primes)
- Unbias a random generator
- Undefined values
- Unicode polynomial equation
- Unicode strings
- Unicode variable names
- Unique characters
- Unique characters in each string
- Unit testing
- Universal Turing machine
- Unix/ls
- Unprimeable numbers
- Untouchable numbers
- Untrusted environment
- UPC
- Update a configuration file
- URL decoding
- URL encoding
- URL parser
- Use another language to call a function
- User defined pipe and redirection operators
- User input/Graphical
- User input/Text
- Using a speech engine to highlight words
- UTF-8 encode and decode

### V

- Validate International Securities Identification Number
- Vampire number
- Van der Corput sequence
- Van Eck sequence
- Variable size/Get
- Variable size/Set
- Variable-length quantity
- Variables
- Variadic function
- Vector
- Vector products
- Verhoeff algorithm
- Verify distribution uniformity/Chi-squared test
- Verify distribution uniformity/Naive
- Vibrating rectangles
- Video display modes
- Vidir
- Vigenère cipher
- Vigenère cipher/Cryptanalysis
- Visualize a tree
- VList
- Vogel's approximation method
- Voronoi diagram

### W

- Walk a directory/Non-recursively
- Walk a directory/Recursively
- War card game
- Water collected between towers
- Waveform analysis/Doh ray me
- Waveform analysis/Top and tail
- Weather routing
- Web scraping
- Weird numbers
- Welch's t-test
- Wieferich primes
- WiktionaryDumps to words
- Wilson primes of order n
- Window creation
- Window creation/X11
- Window management
- Wireworld
- Word break problem
- Word frequency
- Word ladder
- Word search
- Word wheel
- Word wrap
- Wordiff
- Words containing "the" substring
- Words from neighbour ones
- World Cup group stage
- Write entire file
- Write float arrays to a text file
- Write language name in 3D ASCII
- Write to Windows event log

- Execution method/Interpreted
- Execution method/Compiled
- Garbage collection/Reference Counting
- Parameter passing/By reference
- Parameter passing/By value
- Typing/Expression/Explicit
- Typing/Checking/Dynamic
- Typing/Checking/Static
- Programming Languages
- Programming paradigm/Generic
- Programming paradigm/Imperative
- Programming paradigm/Object-oriented