Skip to main content

PReFScript:

Partial Recursive Functions for Scripting

Author: Jose Luis Balcazar, ORCID 0000-0003-4248-4528

Project started: mid Germinal 2003.

Copyleft: MIT License (https://en.wikipedia.org/wiki/MIT_License)

A Python-based environment to explore and experiment with partial recursive functions; naturally doubles as a (purely functional) programming language, but it is not intended to be used much as such.

Current version: 2.0.5, late Fructidor 2026. Previous version 1.2 of mid Messidor 2026 is incompatible.

Scripts

In PReFScript, a script is a sequence of functions defined in terms of each other and of a few basic functions via the partial recursion rules of composition and minimization. All functions are from the natural numbers into the natural numbers and may be undefined for some inputs.

In order to handle tuples or sequences of natural numbers, a Cantor-like encoding is used; see https://github.com/balqui/cantorpairs/blob/main/README.md.

Specifically, the always available basic functions include: k_1, the constant 1 function; id, the identity function; addition and multiplication, add and mul respectively, that interpret the single number received as the Cantor encoding of a pair <x.y> and compute the corresponding operation on x and y; modified difference diff that receives likewise a Cantor-encoded pair <x.y> and computes max(0, x - y) so that we always stay within the natural numbers; and two functions related to projections of Cantor-encoded sequences.

Installation and ways to use PReFScript functions

The usual pip-based process should work. Differently from previous versions, all functionality in 2.0.* is fully compatible with a pipx installation. You may need to specify --upgrade flags, depending on your previous installation. LLMs say that uv should work as well.

The current version installs a stand-alone interpreter. See doc.md.

The following applied to the previous version 1.2: Scripts were maintained in objects of the class PReFScript, that could be imported into your own Python program. Thus, you had available two main ways of programming in PReFScript. All this does not apply anymore to versions 2.0.*.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

prefscript-2.0.5.tar.gz (20.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

prefscript-2.0.5-py3-none-any.whl (28.3 kB view details)

Uploaded Python 3

File details

Details for the file prefscript-2.0.5.tar.gz.

File metadata

  • Download URL: prefscript-2.0.5.tar.gz
  • Upload date:
  • Size: 20.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.3

File hashes

Hashes for prefscript-2.0.5.tar.gz
Algorithm Hash digest
SHA256 c5e1dcc1273dfd3287ca31bf98abb1fd8bde48f9127ab86542666a26995e964c
MD5 24bd35db2ea7666503d1ee73e6a40bd0
BLAKE2b-256 9044deac5147b92276d4b1a9d7d9f80cf6b006e6e979c190642b819d92466bd1

See more details on using hashes here.

File details

Details for the file prefscript-2.0.5-py3-none-any.whl.

File metadata

  • Download URL: prefscript-2.0.5-py3-none-any.whl
  • Upload date:
  • Size: 28.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.3

File hashes

Hashes for prefscript-2.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 c0a7f3a1315a2be6b32fbadf5a4fa20a7d0a61684e7e448092af5aff185ab619
MD5 16ea5d425f0b67304a785d7b3b4d9d18
BLAKE2b-256 e468411f9dd542d3bc39a3674c000f3ac6a33a46f31d709f065eb49284a27bc3

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

2.0.5 This release

2 files

2.0.2

2 files

1.2

2 files

1.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page