Oforth
Oforth is for Object + Forth : while based on Forth philosophy (data stack, one pass compilation, ...), it implements a full object metamodel.
Features include :
- Dynamic language (which does not mean a slow language).
- Oforth comes with an interpreter : you can try things interactively.
- Object metamodel : everything is an object.
- Automatic garbage collection.
- Support of functional programming style and closures using blocks.
- While mutability is allowed, immutability is the default behavior, and sometimes required.
- Support of parallelism using ligth-weight tasks and communication using channels.
- Very concise language : "the more code you write, the more bugs you have"
Tasks
- 100 doors
- 24 game
- A+B
- ABC Problem
- AKS test for primes
- Abstract type
- Abundant, deficient and perfect number classifications
- Accumulator factory
- Ackermann function
- Address of a variable
- Align columns
- Aliquot sequence classifications
- Almost prime
- Amicable pairs
- Anagrams
- Apply a callback to an array
- Arbitrary-precision integers (included)
- Arena storage pool
- Arithmetic-geometric mean
- Arithmetic/Complex
- Arithmetic/Integer
- Array concatenation
- Array length
- Arrays
- Assertions
- Averages/Arithmetic mean
- Averages/Pythagorean means
- Averages/Root mean square
- Averages/Simple moving average
- Balanced brackets
- Binary digits
- Bitwise operations
- Boolean values
- Break OO privacy
- Bulls and cows
- Caesar cipher
- Call a function
- Call an object method
- Case-sensitivity of identifiers
- Catalan numbers
- Catalan numbers/Pascal's triangle
- Catamorphism
- Character codes
- Checkpoint synchronization
- Circles of given radius through two points
- Classes
- Closures/Value capture
- Collections
- Comma quibbling
- Command-line arguments
- Comments
- Compare a list of strings
- Compile-time calculation
- Compound data type
- Concurrent computing
- Conditional structures
- Copy a string
- Count occurrences of a substring
- Cumulative standard deviation
- Currying
- Day of the week
- Delegates
- Detect division by zero
- Digital root
- Dot product
- Doubly-linked list/Definition
- Doubly-linked list/Element definition
- Doubly-linked list/Element insertion
- Doubly-linked list/Traversal
- Dynamic variable names
- Emirp primes
- Empty program
- Empty string
- Enforced immutability
- Entropy
- 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
- Execute a system command
- Exponentiation operator
- Extract file extension
- Extreme floating point values
- Factorial
- Factors of an integer
- Fibonacci sequence
- Fibonacci word
- Filter
- Find limit of recursion
- Find the last Sunday of each month
- First-class functions
- First-class functions/Use numbers analogously
- Five weekends
- FizzBuzz
- Flatten a list
- Flow-control structures
- Forward difference
- Function composition
- Function definition
- Function prototype
- Gamma function
- Generate lower case ASCII alphabet
- Generic swap
- Greatest common divisor
- Greatest element of a list
- Guess the number
- Guess the number/With feedback
- Happy numbers
- Harshad or Niven series
- Haversine formula
- Hello world!
- Hello world/Line printer
- Hello world/Newbie
- Hello world/Newline omission
- Hello world/Standard error
- Hello world/Text
- Higher-order functions
- Hofstadter Figure-Figure sequences
- Hofstadter Q sequence
- Hofstadter-Conway $10,000 sequence
- Implicit type conversion
- Include a file
- Increment a numerical string
- Infinity
- Inheritance/Multiple
- Inheritance/Single
- Input loop
- Integer comparison
- Integer overflow
- Integer sequence
- Interactive programming
- Introspection
- Inverted syntax
- Iterated digits squaring
- JSON
- Jensen's Device
- JortSort
- Josephus problem
- Jump anywhere
- Keyboard input/Flush the keyboard buffer
- Keyboard input/Keypress check
- Keyboard input/Obtain a Y or N response
- Knapsack problem/Continuous
- Knuth shuffle
- Largest int from concatenated ints
- Last Friday of each month
- Leap year
- Least common multiple
- Left factorials
- Linear congruential generator
- Literals/Floating point
- Literals/Integer
- Literals/String
- Logical operations
- Long multiplication
- 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/While
- Ludic numbers
- Luhn test of credit card numbers
- Mad Libs
- Magic squares of odd order
- Map range
- Memory allocation
- Metered concurrency
- Middle three digits
- Modular exponentiation
- Modular inverse
- Multifactorial
- Multiple distinct objects
- Mutual recursion
- N'th
- Naming conventions
- Narcissistic decimal number
- Nth root
- Null object
- Number reversal game
- One-dimensional cellular automata
- Operator precedence
- Order two numerical lists
- Ordered words
- Palindrome detection
- Parallel calculations
- Parsing/RPN calculator algorithm
- Partial function application
- Pascal's triangle
- Perfect numbers
- Perfect shuffle
- Phrase reversals
- Pi
- Pick random element
- Pointers and references
- Polymorphism
- Population count
- Price fraction
- Primality by trial division
- Prime decomposition
- Program termination
- Proper divisors
- Quaternion type
- Queue/Definition
- Queue/Usage
- Quine
- Range expansion
- Read a file line by line
- Real constants and functions
- Remove duplicate elements
- Remove lines from a file
- Rep-string
- Repeat
- Repeat a string
- Respond to an unknown method call
- Return multiple values
- Reverse a string
- Reverse words in a string
- Roman numerals/Encode
- Roots of a function
- Rot-13
- Run-length encoding
- Runtime evaluation
- SEDOLs
- Scope/Function names and labels
- Search a list
- Semiprime
- Semordnilap
- Send an unknown method call
- Sequence of primes by trial division
- Shell one-liner
- Show the epoch
- Sierpinski carpet
- Sierpinski triangle
- Sieve of Eratosthenes
- Singleton
- Singly-linked list/Element definition
- Singly-linked list/Element insertion
- Singly-linked list/Traversal
- Sleep
- Sort an array of composite structures
- Sort an integer array
- Sort using a custom comparator
- Sorting algorithms/Insertion sort
- Sorting algorithms/Quicksort
- Sorting algorithms/Selection sort
- Sorting algorithms/Sleep sort
- Special variables
- Stack
- Stack traces
- Start from a main routine
- Statistics/Basic
- Stern-Brocot sequence
- String append
- String case
- String comparison
- String concatenation
- String length
- String matching
- String prepend
- Strip a set of characters from a string
- Strip comments from a string
- Subleq
- Substring
- Substring/Top and tail
- Sum and product of an array
- Sum digits of an integer
- Sum multiples of 3 and 5
- Sum of a series
- Sum of squares
- Synchronous concurrency
- System time
- Temperature conversion
- Test a function
- Time a function
- Tokenize a string
- Top rank per group
- Topic variable
- Tree traversal
- Trigonometric functions
- Undefined values
- Unicode strings
- Variables
- Variadic function
- Y combinator
- Zero to the zero power