Glad I could be helpful. For younger students, I'd recommend Scratch. The physical blocks show what functions are available, and they can't be combined in an invalid way (no syntax errors). If your students can handle text-based languages, functional concepts, and sometimes difficult error messages, then Elm should certainly stay on your radar.
Here's a very rough sketch of how one might go about writing a LOGO library in Elm.
type alias Movement = List Step
type Step = Forward Int | Back Int | Right Int | Left Int |
Scale Int | Pen Color | Randomized (Float -> Step) | Teleport (Int, Int) | Make Movement
turtle : Movement -> Signal Element
turtle m = {- traverse the data and render the path, possibly with animation -}
-- example functions your students might write
corner : Movement
corner =
[ Forward 5
, Right 90
]
square : Movement
square =
List.repeat 4 (Make corner)
main = turtle square
I might have to go write this now...