App: regression/framework Page: sequence/a_membership_check_finds_a_term_made_past_its_own_value
PHP
sequence/a_membership_check_finds_a_term_made_past_its_own_value.php
|
HTML
sequence/a_membership_check_finds_a_term_made_past_its_own_value.pad
|
Result
|
<?php
// The walks run far - up to two million candidates - and the gate fetches twelve cases at // once: the five seconds a sequence has by default ran out on a busy machine and the // answer came back short. The budget is not what this case asserts. Nor is PHP's own limit: // on a loaded machine the walk took more than its 30 seconds of processor time and the // case ended on "Maximum execution time exceeded".
$padSeqMaxSeconds = 60;
set_time_limit ( 120 );
?>
|
[{sequence eval='100 - @', rows=3}{$sequence} {/sequence}][{sequence '1;50;99', flag, eval='100 - @'}{$sequence}{/sequence}][{sequence '-3;-2;-1', flag, eval='@ * -1'}{$sequence}{/sequence}][{sequence '0;1;2;3', flag, eval='@ % 4'}{$sequence}{/sequence}][{sequence '0.5;1;1.5', flag, eval='@ / 2'}{$sequence}{/sequence}][{sequence '8.5;3.5', flag, step=2.5}{$sequence}{/sequence}][{sequence '3.5;8.5', flag, step=2.5}{$sequence}{/sequence}][{sequence '2.5;7.5;5', flag, floor=2.5}{$sequence}{/sequence}][{sequence '30000;30001', flag, eval='@ * 2'}{$sequence}{/sequence}]
|
|
App: regression/framework Page: sequence/a_value_spliced_into_any_eval_expression_is_text
PHP
sequence/a_value_spliced_into_any_eval_expression_is_text.php
|
HTML
sequence/a_value_spliced_into_any_eval_expression_is_text.pad
|
Result
|
<?php
// A value spliced into the quoted expression of the eval sequence is a string of it in every // spelling - {eval '...'}, {sequence:eval '...'}, make='eval|...', sequence:eval(2, '...') - // as in eval='...': only eval= quoted it, and in the others the value became part of the // expression and called the function it named.
$q = 'php:gettype()';
?>
|
e[{eval '@ . {$q}', rows=2}{$eval} {/eval}] s[{sequence:eval '@ . {$q}', rows=2}{$eval} {/sequence:eval}] m[{sequence '1..2', make='eval|@ . {$q}'}{$sequence} {/sequence}] c[{echo sequence:eval(2, '@ . {$q}')}]
|
|
App: regression/framework Page: sequence/eval
PHP
|
HTML
sequence/eval.pad
|
Result
|
|
{sequence eval='@ * 2', rows=8} {$sequence}, {/sequence}
|
|
App: regression/framework Page: sequence/the_expression_written_as_the_parameter_of_sequence_eval_runs
PHP
sequence/the_expression_written_as_the_parameter_of_sequence_eval_runs.php
|
HTML
sequence/the_expression_written_as_the_parameter_of_sequence_eval_runs.pad
|
Result
|
<?php
// The parameter of sequence:eval() written as a quoted string is an expression the template // writes, and runs - the third term of '@ * 2' is 6. It was refused as one from a value, // which sequence:eval(3, $q) still is.
?>
|
a[{echo sequence:eval(3, '@ * 2')}] b[{echo sequence:eval(4, "@ + 10")}]
|
|
App: sequence Page: basic/eval
App: sequence Page: gallery
PHP
gallery.php
|
HTML
gallery.pad
|
Result
|
<?php
// The gallery: every sequence type that needs no parameter, its first 24 terms drawn as a // {sparkline}, the first eight written out, and the OEIS entry the terms come from - a // link to oeis.org, found in the table the oeis type reads (seqFunOeis in _lib/fun.php).
$drawn = [];
foreach ( seqFunTypes () as $type ) {
$terms = seqFunTerms ( $type, 24 ); $oeis = seqFunOeis ( $terms, $type );
$drawn [] = [ 'type' => $type, 'first' => implode ( ', ', array_slice ( $terms, 0, 8 ) ), 'oeis' => $oeis ? sprintf ( 'A%06d', $oeis ) : '' ];
}
?>
|
<p>Every sequence type that needs no parameter, its first 24 terms drawn by <code>{sparkline sequence=$type, rows=24}</code>, beside the <a href="https://oeis.org">OEIS</a> entry the terms come from. Follow a name to hear it.</p>
<table cellpadding="4"> {drawn} <tr> <td align="right"><a href="?listen&type={$type}">{$type}</a></td> <td>{sparkline sequence=$type, rows=24}</td> <td align="left"><small>{$first}, ...</small></td> <td>{if $oeis ne ''}<a href="https://oeis.org/{$oeis}">{$oeis}</a>{/if}</td> </tr> {/drawn} </table>
|
|
App: sequence Page: listen
PHP
listen.php
|
HTML
listen.pad
|
Result
|
<?php
// Listen: a sequence played as notes. Each of the first 32 terms becomes a note - the // term modulo 60, five octaves up from C2, the way the OEIS 'listen' button folds a term // into the keyboard - and the notes are written as a WAV file into the page itself // (seqFunWav in _lib/fun.php), so an <audio> element plays them without JavaScript. // Recamán's sequence, which jumps back and forth, is the famous one to listen to. // // type arrives from the query string and is used only when it names a type the gallery // draws.
$choices = seqFunTypes ();
if ( ! isset ( $type ) or ! is_string ( $type ) or ! in_array ( $type, $choices ) ) $type = 'recaman';
$terms = seqFunTerms ( $type, 32 ); $oeis = seqFunOeis ( $terms, $type ); $oeis = $oeis ? sprintf ( 'A%06d', $oeis ) : ''; $list = implode ( ', ', $terms ); $notes = implode ( ' ', array_map ( 'seqFunNoteName', seqFunNotes ( $terms ) ) ); $audio = seqFunWav ( $terms );
?>
|
<p>{choices}{notFirst} | {/notFirst}{if $choices eq $type}<b>{$choices}</b>@else@<a href="?listen&type={$choices}">{$choices}</a>{/if}{/choices}</p>
<h3>{$type | ucfirst}{if $oeis ne ''} - <a href="https://oeis.org/{$oeis}">{$oeis}</a>{/if}</h3>
{chart 'line', data='terms', title='{$type | ucfirst}, the first 32 terms', width=640, height=220}
<p><audio controls preload="none" src="{$audio}"></audio></p>
<p>Each term is a note: the term modulo 60, counted in semitones up from C2.</p>
<p><small>{$list}</small></p>
<p><small>{$notes}</small></p>
|
|
App: sequence Page: play/single/eval
App: sequence Page: sequences
PHP
sequences.php
|
HTML
|
Result
|
<?php
echo "{table}";
echo str_pad ( "{demo}{sequence}", 38) . "{\$sequence} {/sequence} {/demo}";
foreach ( types () as $type ) {
$parm = pqParm ( $type );
if ( $type == 'oeis' ) $gox = "oeis=87"; elseif ( $type == 'list' ) $gox = "list='1;8;5;2;9;66'"; elseif ( $type == 'range' ) $gox = "range='1..10'"; elseif ( $type == 'eval' ) $gox = "eval='@ * 10 | @ - 1'"; elseif ( $type == 'random' ) $gox = 'random, maximal=99'; else $gox = "$type$parm";
echo str_pad ( "{demo}{sequence $gox}", 38) . "{\$sequence} {/sequence} {/demo}";
}
echo "{/table}";
?>
|
|
|
App: sequence Page: types/eval
|