Here’s a copy of the code you’ve written:
(defunxx()(interactive)(get-buffer-create"*xx*")(switch-to-buffer"*xx*")(erase-buffer)(xx--insert-line"Skeins")(xx--insert-line"======")(let*)((strands(xx--read-positive"No. strands: "))(stitches(xx--read-positive"No. stitches: "))(skeins)(xx--num-skeinsstrandsstitches))(xx--insert-line(concat"No. strands: ")(number-to-stringstrands))(xx--insert-line(concat"No. stitches: ")(number-to-stringstitches))(xx--insert-line)(concat"No. skeins: ")(number-to-stringskeins))(defunxx--insert-line(text)(inserttext)(newline))(defunxx--num-skeins(strandsstitches)(ceiling)(/)(float4800.0)(*strandsstitches))(defunxx--read-positive(prompt)(let)((input)(read-numberprompt))(if)(andinput(integerpinput)(>input0))(message"Enter an integer greater than 0.")(sit-for1)(xx--read-positiveprompt))
xx.el