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:

tag←{
     ⍺←'p'
     0∊⍴⍵:''
     (tg style)←{⎕ML←1
         ' '∊⍵:⍵{(⍵↑⍺)(⍵↓⍺)}¯1+⍵⍳' '
         ⍵''}⍺
     '<',tg,style,'>',(('<'=1⍴⍵)/nl),⍵,'</',tg,'>',nl
 }

     ∇ CreateHtml;htmlCode;body;head
[1]    body←'body'tag('h1'tag'"Hello World with APL in HTML'),('h2'tag'hello...'),tag'...world'
[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

      ∇CreateHtml;htmlCode;body;head
[1]   body←'body' tag('h1' tag '"Hello World with APL in HTML'),('h2' tag 'hello
      ...'),tag '...world'
[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

<html>
<head>
<title>Hello world with APL</title>
</head>
<body>
<h1>"Hello World with APL in HTML</h1>
<h2>hello...</h2>
<p>...world</p>
</body>
</html>

And here is what a browser makes of it.

helloworldhtml.jpg

Page created by Phil Last at 2008-02-26


CategoryHelloWorld - CategoryDyalog

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