From 9fae5d516012e2c0802105e67c79e2587a22b9dc Mon Sep 17 00:00:00 2001 From: Alexander Pickering Date: Wed, 1 Jan 2020 22:37:37 -0500 Subject: Inital commit --- hw5/hw5.moon | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 hw5/hw5.moon (limited to 'hw5/hw5.moon') diff --git a/hw5/hw5.moon b/hw5/hw5.moon new file mode 100644 index 0000000..142625c --- /dev/null +++ b/hw5/hw5.moon @@ -0,0 +1,38 @@ +--Homework 5, Alexander Pickering (amp215@pitt.edu) +-- +-- Moonscript! +-- $ apt-get install lua5.3 lua5.3-dev luarocks +-- $ luarocks install moonscript +-- +-- You can then run this file with +-- $ moon hw5.moon + +accept_input = io.read + +--seperate things that are one or more non-space characters +--https://www.lua.org/manual/5.3/manual.html#6.4.1 +split_string = (s) -> [x for x in string.gmatch(s,"(%S+)")] + +--apply string.upper() to the first character in a word +capitalize_word = (word) -> string.gsub(word,"^(.)",string.upper) + +--uppercase words in an array +uppercase_words = (array) -> + [capitalize_word(word) for word in *array] + +--print all the words in an array +print_words = (array) -> + for word in *array do + print(word) + +--Built in sorting! +sort_words = table.sort + +--If a function has no arguments, it can be called using the ! operator, instead of empty parentheses. The ! invocation is the preferred way to call functions with no arguments. +sentence = accept_input! + +words = split_string(sentence) +words = uppercase_words(words) +sort_words(words) + +print_words(words) -- cgit v1.2.3-70-g09d2