De Meuter, Gonzalez, and D'Hondt describe the Pico syntax as being "two-tiered."2 The first layer consists of simple rules for writing small programs in a functional programming style.
Comments are surrounded by backquotes ("`").
Variables are dynamically typed; Pico uses static scope.
Functions, like everything in Pico, are first-class objects, meaning they can be assigned to variables and passed to and returned from functions. Also, there are no anonymous functions in Pico; functions must have a name.3 For example, a function, func, with two parameters, param1 and param2, can be defined as:
Functions can be called with the following syntax:
Operators can be used as prefix or infix in Pico:
Pico has the following types: string, integer, real and tables.
It does not have a native char type, so users should resort to size 1 strings.
Tables are compound data structures that may contain any of the regular data types.
Boolean types are represented by functions (as in lambda calculus).
Only the usual if statement is included
D'Hondt, Theo; Gonzalez, Sebastian; De Meuter, Wolfgang (1 January 1999). "The design and rationale behind pico". Programming Technology Lab, Department of Computer Science, Vrije Universiteit Brussel. Retrieved 3 December 2023. https://www.academia.edu/509697/The_design_and_rationale_behind_pico ↩