#!/usr/local/bin/jconsole require'html-tools-howland.ijs' NB. a monad to compute the speed (speed primary ; circumference ; ratios ; rpm ; final) speed =: 3 : 0 'primary circumference ratios rpm final' =. y ,(5j0 ": x: ^:_1 (_,rpm) , (>:i.#ratios) ,. (( i.#ratios) { ratios) *&final @ (5&* @ ((x:circumference%254)&*) @ (primary&*) @ (1r5280&*) @ *) / rpm)," 1 LF ) mc =: unmungle ' ' ((('+'=expr)#i.#expr)}) expr =: get_field'mc' primary =: unmungle ' ' ((('+'=expr)#i.#expr)}) expr =: get_field'primary' circumference =: unmungle ' ' ((('+'=expr)#i.#expr)}) expr =: get_field'circumference' ratios =: unmungle ' ' ((('+'=expr)#i.#expr)}) expr =: get_field'ratios' rpm =: unmungle ' ' ((('+'=expr)#i.#expr)}) expr =: get_field'rpm' final =: unmungle ' ' ((('+'=expr)#i.#expr)}) expr =: get_field'final' page ((par 'Speed table for ',mc),(par 'Primary drive ratio = ',primary),(par 'Rear Wheel Circumference = ', (_1}. circumference), ' mm'),(par 'Gear ratios = ', ratios),(par 'RPMs = ' , rpm),(par 'Final drive ratio = ' , final)),(pre (speed (do primary) ; (do circumference) ; (do ratios) ; (do rpm) ; (do final))),(aref 'www.cs.trinity.edu/~jhowland/speed-input.cgi') ht 'Compute another RPM/Speed table' exit 0