Creating a simple HTML page using APL

We can write a simple function to create HTML and pass that to a browser in order to display our Hello World example.

Here's the function in Dyalog APL:

     (tg style)←{⎕ML←1
         ' '∊⍵:⍵{(⍵↑⍺)(⍵↓⍺)}¯1+⍵⍳' '

     ∇ CreateHtml;htmlCode;body;head
[1]    body←'body'tag('h1'tag'"Hello World with APL in HTML'),('h2'tag'hello...'),tag''
[2]    head←'head'tag('title'tag'Hello world with APL'),(''tag'')
[3]    htmlCode←'html'tag head,body
[4]    htmlCode{(⎕NUNTIE ⍵){}⍺ ⎕NAPPEND ⍵}'helloworld.html'⎕NCREATE 0

And here's an example in APL+Win:

      ∇R←tagname tag contents
[1]   :If 0=⎕nc 'tagname'
[2]     tagname←'p'   ⍝ Left argument defaults to 'p' for paragraph
[3]   :EndIf
[4]   :If 0=⍴contents
[5]     R←''
[6]   :Else
[7]     R←'<',tagname,'>',(('<'=1⍴contents)/⎕L),contents,'</',tagname,'>',⎕L
[8]   :EndIf

[1]   body←'body' tag('h1' tag '"Hello World with APL in HTML'),('h2' tag 'hello
      ...'),tag ''
[2]   head←'head' tag('title' tag 'Hello world with APL'),('' tag '')
[3]   htmlCode←'html' tag head,body
[4]   'helloworld.html' ⎕NCREATE 1 ⋄ htmlCode ⎕NWRITE 1 4 ⋄ ⎕NUNTIE 1

Below is the output HTML from the above function

<title>Hello world with APL</title>
<h1>"Hello World with APL in HTML</h1>

And here is what a browser makes of it.


Page created by Phil Last at 2008-02-26

CategoryHelloWorld - CategoryDyalog

HelloWorldHtml (last edited 2017-02-16 19:18:46 by KaiJaeger)