We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.

Perm

From Esolang
Jump to navigation Jump to search
This article is not detailed enough and needs to be expanded. Please help us by adding some more information.

Perm is a language built around permutations. For the moment, it is undecided whether this should be procedural or functional.

This is a work in progress, and any help on filling in the blanks would be appreciated.

Specification

Basics

  • Any decimal integer, n, computes the transposition (0 n)
    • Therefore 0 is the identity permutation
  • The . operator computes the product of the two operands
  • ~ is the end-of-line comment delimiter
1.2.3     ~computes (0 1)*(0 2)*(0 3), or (0 1 2 3)
  • The unary - computes the inverse of a permutation
    • This means 1 == -1
  • Parentheses can be used to group operations
-(1.2)    ~computes the inverse of (0 1 2), or (0 2 1)

Functions and Flow Control

TODO

I/O

TODO