Top 1K Features Creators Events Podcasts Books Extensions Interviews Blog Explorer CSV

FML

< >

FML, aka Function Manipulation Language, is a programming language created in 2012 by Joe Groff.

#2037on PLDB 12Years Old

fml is an optimizing, function-oriented, array programming language. Unlike other array programming languages, it aims to have a less symbol-heavy but still concise syntax, and non-strict semantics that allow for high-level optimization. Note that fml is not: meant for serious use always faster than systems languages like C/C++/etc. always more expressive than general-purpose languages like Python, Javascript, etc. suitable for cryptography, real-time, or low-level applications that require fine control of time and space complexity


Example from the web:
pad = x flip[stitch] 0, stitch 0, flip[cat] 0, cat 0 life = pad, neighborhoods[3 3], [ravel, [sum in?: [x @ 4, + 3; 3]]]/2 [0 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0] replicate[life]-times[5] ### [0 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 1 0 1 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 1 0 0] ###

Language features

Feature Supported Example Token
MultiLine Comments ✓ ### A comment ### ###
Line Comments ✓ # A comment #
Directives ✓ # Directives are special lines that have syntax and semantics of their own. Directives all start with a name of the form .foo; new directives may be added by future versions of the language. .import math.constants area = x * math.constants.Pi, ^ 2 .from math.constants import Pi, E area = x sq, * Pi polar = a * [E ^ [b * 0+j1]]
Comments ✓ # This is a line comment ### This is a block comment ###
Semantic Indentation X

- Build the next great programming language · Add · Issues · About · Search · Keywords · Livestreams · Labs · Resources · Acknowledgements

Built with Scroll v154.3.0