Front Page All Articles Recent Changes Random Article

Contents

Concatenative language

  • ACL
  • Ait
  • Aocla
  • Breeze
  • Callisto
  • Cat
  • Cognate
  • colorForth
  • Concata
  • CoSy
  • Deque
  • DSSP
  • dt
  • Elymas
  • Enchilada
  • ETAC
  • F
  • Factor
  • Fiveth
  • Forth
  • Fourth
  • Freelang
  • Gershwin
  • hex
  • iNet
  • Joy
  • Joy of Postfix App
  • kcats
  • Kitten
  • lang5
  • Listack
  • LSE64
  • Lviv
  • Meow5
  • min
  • Mirth
  • mjoy
  • Mlatu
  • Ode
  • OForth
  • Om
  • Onyx
  • Plorth
  • Popr
  • Porth
  • PostScript
  • Prowl
  • Quest32
  • Quackery
  • r3
  • Raven
  • Retro
  • RPL
  • SPL
  • Staapl
  • Stabel
  • Tal
  • Titan
  • Trith
  • Uiua
  • Worst
  • xs
  • XY
  • 5th
  • 8th

Concatenative topics

  • Compilers
  • Interpreters
  • Type systems
  • Object systems
  • Quotations
  • Variables
  • Garbage collection
  • Example programs

Concatenative meta

  • People
  • Communities

Other languages

  • APL
  • C++
  • Erlang
  • FP trivia
  • Haskell
  • Io
  • Java
  • JavaScript
  • Lisp
  • ML
  • Oberon
  • RPL
  • Self
  • Slate
  • Smalltalk

Meta

  • Search
  • Farkup wiki format
  • Etiquette
  • Sandbox

Uiua

Uiua is a stack-based array-oriented programming language created by Kai Schmidt (He/Him). It uses a right-to-left top-to-bottom evaluation scheme.

Like other array languages, the only composite data type is the multidimensional rank-polymorphic array. Operations can be applied to the whole array without needing explicit flow-control. Uiua's array model is similar to J, a language descended from APL.

Uiua does not have different monadic and dyadic behaviors for each glyph, as it uses a stack. There are several other fundamental differences that are outlined on the Uiua website.

Uiua features a configurable Unicode formatter that gives ASCII names to its glyphs which can assist in writing code. Uiua's glyph choices are inspired from BQN, another APL descendant. Additionally, the language has out-of-the-box support for rendering arrays as images, playing an arrays as audio, and performing HTTP operations.

Uiua's website includes its interactive playground, documentation, examples, and notes about its design. Its Rust source code is hosted on Github.

Sample Code

The average of an array

Avg ← ÷⊃⧻/+
Avg 0_2_1_5

The first 12 numbers of the Fibonacci series

⇌[⍥⊃+⊙∘10 1 0]

The Quadratic Equation

Quad ← ÷⊙-⊃⊓'×2∘(⊟¯.√+×.∶×ׯ4⊙∶)
Quad 1 2 0

Renders the Uiua Logo

xy ← ⍘⍉⊞⊟. ÷÷2∶ -÷2,⇡.200
rgb ← [∶⍘⊟×.xy ↯△⊢xy0.5]
u ← ↥<0.2∶>0.7.+×2 ×.∶⍘⊟xy
c ← <∶√/+ⁿ2 xy
⍉⊂∶-¬u c1 +0.1 ∺↧rgb c0.95

This revision created on Thu, 9 Nov 2023 03:42:57 by razetime (be more exact about Uiua inspirations)

Latest Revisions Edit

All content is © 2008-2024 by its respective authors. By adding content to this wiki, you agree to release it under the BSD license.