pad

PAD Sequence Types

This document describes the sequence types available in PAD and how to generate them.

Basic Sequence Generation

{fibonacci rows=10}{$fibonacci} {/fibonacci}      # Fibonacci numbers
{prime rows=15}{$prime} {/prime}                  # Prime numbers
{sequence '1..10', name='n'}{$n} {/sequence}      # Range 1-10
{random minimal=1, maximal=100, rows=5}           # Random numbers
{list '5;2;8;1;9'}{$list} {/list}                 # Custom list

Character/Letter Ranges

{sequence 'A..Z', name='letter'}{$letter} {/sequence}   # Full alphabet
{sequence 'a..e', name='c'}{$c} {/sequence}             # a, b, c, d, e
{sequence '0..9', name='digit'}{$digit} {/sequence}     # Digits as strings

OEIS Integration (Online Encyclopedia of Integer Sequences)

{sequence 10, oeis=81}{$sequence} {/sequence}           # OEIS sequence A000081
{sequence 15, oeis=257360}{$sequence} {/sequence}       # OEIS sequence A257360

Loop with from/to Parameters

{sequence loop, from=11, to=30, name='i'}{$i} {/sequence}

Sequence Types (80+)

Mathematical Sequences

Figurate Numbers

Filters

Other Sequences

Arithmetic Operations

Logical Operations

Generation

Storing and Retrieving Sequences

IMPORTANT: Store names cannot be the same as action names (e.g., can’t use push='first' because first is an action).

{sequence '1..10', push='mySeq'}           # Store sequence
{pull:mySeq}{$sequence} {/pull:mySeq}      # Retrieve and iterate

# Use pull: prefix to avoid naming conflicts with app tags
{sequence 5, push='nums'}
{pull:nums} {$sequence} {/pull:nums}

Sequence Tags

The sequence tags (resume, pull, keep, remove, flag, make) operate on stored sequences:

{sequence 5, push='mySeq'}           # Create and store sequence
{resume add=10}                       # Transform: add 10 to each value
{resume reverse}                      # Transform: reverse order
{pull:mySeq} {$sequence} {/pull:mySeq}  # Iterate stored sequence

Note: {resume} applies transformations to stored sequences. Use {continue} for skipping iterations (like PHP’s continue).

Sequence Variable Access

Use named sequences instead of level-based $-1 syntax:

{sequence 5, name='n'}
  {$n}                    # Correct - use named variable
{/sequence}

{sequence 5}
  {$-1}                   # Avoid - level-based access can be fragile
{/sequence}

Named vs Unnamed Sequences

Always prefer named sequences for clarity:

{sequence 5, name='i'}
  {$i}                  # Clear, explicit
{/sequence}

{sequence '1..3', name='row'}
  {sequence '1..4', name='col'}
    ({$row},{$col})
  {/sequence}
{/sequence}

Special Syntax Rules

Some sequences need sequence: prefix:

{sequence:repeat 42, rows=5}{$repeat}{/sequence:repeat}
{sequence:even rows=10}{$even}{/sequence:even}

Chance sequence needs a numeric parameter:

{chance 4, rows=15}    # 1-in-4 chance (not {chance rows=15})

See Also