41 lines
6.1 KiB
Plaintext
41 lines
6.1 KiB
Plaintext
(phixonline)-->
|
|
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
|
|
<span style="color: #000080;font-style:italic;">-- comparing a simple implementation against using the builtins:</span>
|
|
<span style="color: #004080;">sequence</span> <span style="color: #000000;">stack</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{}</span>
|
|
|
|
<span style="color: #008080;">procedure</span> <span style="color: #000000;">push_</span><span style="color: #0000FF;">(</span><span style="color: #004080;">object</span> <span style="color: #000000;">what</span><span style="color: #0000FF;">)</span>
|
|
<span style="color: #000000;">stack</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">append</span><span style="color: #0000FF;">(</span><span style="color: #000000;">stack</span><span style="color: #0000FF;">,</span><span style="color: #000000;">what</span><span style="color: #0000FF;">)</span>
|
|
<span style="color: #008080;">end</span> <span style="color: #008080;">procedure</span>
|
|
|
|
<span style="color: #008080;">function</span> <span style="color: #000000;">pop_</span><span style="color: #0000FF;">()</span>
|
|
<span style="color: #004080;">object</span> <span style="color: #000000;">what</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">stack</span><span style="color: #0000FF;">[$]</span>
|
|
<span style="color: #000000;">stack</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">stack</span><span style="color: #0000FF;">[</span><span style="color: #000000;">1</span><span style="color: #0000FF;">..$-</span><span style="color: #000000;">1</span><span style="color: #0000FF;">]</span>
|
|
<span style="color: #008080;">return</span> <span style="color: #000000;">what</span>
|
|
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
|
|
|
|
<span style="color: #008080;">function</span> <span style="color: #000000;">empty_</span><span style="color: #0000FF;">()</span>
|
|
<span style="color: #008080;">return</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">stack</span><span style="color: #0000FF;">)=</span><span style="color: #000000;">0</span>
|
|
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
|
|
|
|
<span style="color: #0000FF;">?</span><span style="color: #000000;">empty_</span><span style="color: #0000FF;">()</span> <span style="color: #000080;font-style:italic;">-- 1</span>
|
|
<span style="color: #000000;">push_</span><span style="color: #0000FF;">(</span><span style="color: #000000;">5</span><span style="color: #0000FF;">)</span>
|
|
<span style="color: #0000FF;">?</span><span style="color: #000000;">empty_</span><span style="color: #0000FF;">()</span> <span style="color: #000080;font-style:italic;">-- 0</span>
|
|
<span style="color: #000000;">push_</span><span style="color: #0000FF;">(</span><span style="color: #000000;">6</span><span style="color: #0000FF;">)</span>
|
|
<span style="color: #0000FF;">?</span><span style="color: #000000;">pop_</span><span style="color: #0000FF;">()</span> <span style="color: #000080;font-style:italic;">-- 6</span>
|
|
<span style="color: #0000FF;">?</span><span style="color: #000000;">pop_</span><span style="color: #0000FF;">()</span> <span style="color: #000080;font-style:italic;">-- 5</span>
|
|
<span style="color: #0000FF;">?</span><span style="color: #000000;">empty_</span><span style="color: #0000FF;">()</span> <span style="color: #000080;font-style:italic;">-- 1</span>
|
|
|
|
<span style="color: #0000FF;">?</span><span style="color: #008000;">"===builtins==="</span>
|
|
<span style="color: #7060A8;">requires</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"1.0.2"</span><span style="color: #0000FF;">)</span> <span style="color: #000080;font-style:italic;">-- (latest bugfixes, plus top renamed as peep, for p2js)</span>
|
|
|
|
<span style="color: #004080;">integer</span> <span style="color: #000000;">sid</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">new_stack</span><span style="color: #0000FF;">()</span>
|
|
<span style="color: #0000FF;">?</span><span style="color: #7060A8;">stack_empty</span><span style="color: #0000FF;">(</span><span style="color: #000000;">sid</span><span style="color: #0000FF;">)</span> <span style="color: #000080;font-style:italic;">-- 1</span>
|
|
<span style="color: #7060A8;">push</span><span style="color: #0000FF;">(</span><span style="color: #000000;">sid</span><span style="color: #0000FF;">,</span><span style="color: #000000;">5</span><span style="color: #0000FF;">)</span>
|
|
<span style="color: #0000FF;">?</span><span style="color: #7060A8;">stack_empty</span><span style="color: #0000FF;">(</span><span style="color: #000000;">sid</span><span style="color: #0000FF;">)</span> <span style="color: #000080;font-style:italic;">-- 0</span>
|
|
<span style="color: #7060A8;">push</span><span style="color: #0000FF;">(</span><span style="color: #000000;">sid</span><span style="color: #0000FF;">,</span><span style="color: #000000;">6</span><span style="color: #0000FF;">)</span>
|
|
<span style="color: #000080;font-style:italic;">--?peep(sid) -- 6 (leaving it there)</span>
|
|
<span style="color: #0000FF;">?</span><span style="color: #7060A8;">pop</span><span style="color: #0000FF;">(</span><span style="color: #000000;">sid</span><span style="color: #0000FF;">)</span> <span style="color: #000080;font-style:italic;">-- 6</span>
|
|
<span style="color: #0000FF;">?</span><span style="color: #7060A8;">pop</span><span style="color: #0000FF;">(</span><span style="color: #000000;">sid</span><span style="color: #0000FF;">)</span> <span style="color: #000080;font-style:italic;">-- 5</span>
|
|
<span style="color: #0000FF;">?</span><span style="color: #7060A8;">stack_empty</span><span style="color: #0000FF;">(</span><span style="color: #000000;">sid</span><span style="color: #0000FF;">)</span> <span style="color: #000080;font-style:italic;">-- 1</span>
|
|
<!--
|