Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Exercism

Lua

via Exercism

Overview

Lua (pronounced LOO-ah, which means Moon in Portuguese) is a simple yet powerful, lightweight, fast, portable and embeddable scripting language. It is designed, implemented, and maintained by a team at PUC-Rio and is housed at LabLua.

Lua supports procedural, object-oriented, functional, data-driven programming and data description. It combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics. Lua is dynamically typed, runs by interpreting bytecode with a register-based virtual machine and has automatic memory management with incremental garbage collection, making it ideal for configuration, scripting and rapid prototyping.

Lua has been used in many industrial applications with an emphasis on embedded systems and games.

The home page for Lua is Lua.org. Enjoy!

(Taken from https://www.lua.org/about.html)

Syllabus

  • Hello World
    • The classical introductory exercise. Just say "Hello, World!"
  • Hamming
    • Calculate the Hamming difference between two DNA strands.
  • House
    • Output the nursery rhyme 'This is the House that Jack Built'.
  • Difference Of Squares
    • Find the difference between the square of the sum and the sum of the squares of the first N natural numbers.
  • Binary Search
    • Implement a binary search algorithm.
  • Matrix
    • Given a string representing a matrix of numbers, return the rows and columns of that matrix.
  • Isogram
    • Determine if a word or phrase is an isogram.
  • Bank Account
    • Simulate a bank account supporting opening/closing, withdraws, and deposits of money. Watch out for concurrent transactions!
  • Nth Prime
    • Given a number n, determine what the nth prime is.
  • Diamond
    • Given a letter, print a diamond starting with 'A' with the supplied letter at the widest point.
  • Run Length Encoding
    • Implement run-length encoding and decoding.
  • Robot Name
    • Manage robot factory settings.
  • Leap
    • Given a year, report if it is a leap year.
  • Custom Set
    • Create a custom set type.
  • Pig Latin
    • Implement a program that translates from English to Pig Latin
  • List Ops
    • Implement basic list operations
  • Binary
    • Convert a binary number, represented as a string (e.g. '101010'), to its decimal equivalent using first principles
  • Allergies
    • Given a person's allergy score, determine whether or not they're allergic to a given item, and their full list of allergies.
  • Resistor Color Trio
    • Convert color codes, as used on resistors, to a human-readable label.
  • Nucleotide Count
    • Given a DNA string, compute how many times each nucleotide occurs in the string.
  • Protein Translation
    • Translate RNA sequences into proteins.
  • Rna Transcription
    • Given a DNA strand, return its RNA Complement Transcription.
  • Scrabble Score
    • Given a word, compute the Scrabble score for that word.
  • Beer Song
    • Produce the lyrics to that beloved classic, that field-trip favorite: 99 Bottles of Beer on the Wall.
  • Food Chain
    • Generate the lyrics of the song 'I Know an Old Lady Who Swallowed a Fly'
  • Sum Of Multiples
    • Given a number, find the sum of all the multiples of particular numbers up to but not including that number.
  • Collatz Conjecture
    • Calculate the number of steps to reach 1 using the Collatz conjecture
  • Perfect Numbers
    • Determine if a number is perfect, abundant, or deficient based on Nicomachus' (60 - 120 CE) classification scheme for positive integers.
  • Pythagorean Triplet
    • There exists exactly one Pythagorean triplet for which a + b + c = 1000. Find the product a * b * c.
  • Triangle
    • Determine if a triangle is equilateral, isosceles, or scalene.
  • Largest Series Product
    • Given a string of digits, calculate the largest product for a contiguous substring of digits of length n.
  • Change
    • Correctly determine change to be given using the least number of coins
  • Binary Search Tree
    • Insert and search for numbers in a binary tree.
  • Flatten Array
    • Take a nested list and return a single list with all values except nil/null
  • Matching Brackets
    • Make sure the brackets and braces all match.
  • Pov
    • Reparent a graph on a selected node
  • Minesweeper
    • Add the numbers to a minesweeper board
  • Ocr Numbers
    • Given a 3 x 4 grid of pipes, underscores, and spaces, determine which number is represented, or whether it is garbled.
  • Transpose
    • Take input text and output it transposed.
  • Word Search
    • Create a program to solve a word search puzzle.
  • Alphametics
    • Write a function to solve alphametics puzzles.
  • React
    • Implement a basic reactive system.
  • Rectangles
    • Count the rectangles in an ASCII diagram.
  • Pangram
    • Determine if a sentence is a pangram.
  • Word Count
    • Given a phrase, count the occurrences of each word in that phrase.
  • Acronym
    • Convert a long phrase to its acronym
  • Anagram
    • Given a word and a list of possible anagrams, select the correct sublist.
  • Clock
    • Implement a clock that handles times without dates.
  • Grade School
    • Given students' names along with the grade that they are in, create a roster for the school
  • Prime Factors
    • Compute the prime factors of a given natural number.
  • Sieve
    • Use the Sieve of Eratosthenes to find all the primes from 2 up to a given number.
  • Pascals Triangle
    • Compute Pascal's triangle up to a given number of rows.
  • Atbash Cipher
    • Create an implementation of the atbash cipher, an ancient encryption system created in the Middle East.
  • Isbn Verifier
    • Check if a given string is a valid ISBN-10 number.
  • Luhn
    • Given a number determine whether or not it is valid per the Luhn formula.
  • Crypto Square
    • Implement the classic method for composing secret messages called a square code.
  • Variable Length Quantity
    • Implement variable length quantity encoding and decoding.
  • Rail Fence Cipher
    • Implement encoding and decoding for the rail fence cipher.
  • Robot Simulator
    • Write a robot simulator.
  • Raindrops
    • Convert a number to a string, the content of which depends on the number's factors.
  • Gigasecond
    • Given a moment, determine the moment that would be after a gigasecond has passed.
  • Grains
    • Calculate the number of grains of wheat on a chessboard given that the number on each square doubles.
  • Space Age
    • Given an age in seconds, calculate how old someone is in terms of a given planet's solar years.
  • Bob
    • Bob is a lackadaisical teenager. In conversation, his responses are very limited.
  • Secret Handshake
    • Given a decimal number, convert it to the appropriate sequence of events for a secret handshake.
  • Roman Numerals
    • Write a function to convert from normal numbers to Roman Numerals.
  • Rational Numbers
    • Implement rational numbers.
  • Circular Buffer
    • A data structure that uses a single, fixed-size buffer as if it were connected end-to-end.
  • Linked List
    • Implement a doubly linked list
  • Meetup
    • Calculate the date of meetups.
  • Say
    • Given a number from 0 to 999,999,999,999, spell out that number in English.
  • Etl
    • We are going to do the `Transform` step of an Extract-Transform-Load.
  • Queen Attack
    • Given the position of two queens on a chess board, indicate whether or not they are positioned so that they can attack each other.
  • Reverse String
    • Reverse a string
  • Series
    • Given a string of digits, output all the contiguous substrings of length `n` in that string.
  • Sublist
    • Write a function to determine if a list is a sublist of another list.
  • All Your Base
    • Convert a number, represented as a sequence of digits in one base, to any other base.
  • Octal
    • Convert a octal number, represented as a string (e.g. '1735263'), to its decimal equivalent using first principles (i.e. no, you may not use built-in or external libraries to accomplish the conversion).
  • Phone Number
    • Clean up user-entered phone numbers so that they can be sent SMS messages.
  • Bowling
    • Score a bowling game
  • Kindergarten Garden
    • Given a diagram, determine which plants each child in the kindergarten class is responsible for.
  • Tournament
    • Tally the results of a small football competition.

Reviews

1.0 rating, based on 1 Class Central review

Start your review of Lua

  • Anonymous
    Problem is given but no guidance on how to solve with code. If you need help, it's $9.99 month. :/ Apparently this review must be at least 100 characters, so hopefully this fills the space enough to allow me to submit my review.

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.