How to resolve the algorithm The Name Game step by step in the jq programming language

Published on 12 May 2024 09:40 PM
#Jq

How to resolve the algorithm The Name Game step by step in the jq programming language

Table of Contents

Problem Statement

Write a program that accepts a name as input and outputs the lyrics to the Shirley Ellis song "The Name Game".

The regular verse Unless your name begins with a vowel (A, E, I, O, U), 'B', 'F' or 'M' you don't have to care about special rules. The verse for the name 'Gary' would be like this: At the end of every line, the name gets repeated without the first letter: Gary becomes ary If we take (X) as the full name (Gary) and (Y) as the name without the first letter (ary) the verse would look like this: Vowel as first letter of the name If you have a vowel as the first letter of your name (e.g. Earl) you do not truncate the name. The verse looks like this: 'B', 'F' or 'M' as first letter of the name In case of a 'B', an 'F' or an 'M' (e.g. Billy, Felix, Mary) there is a special rule. The line which would 'rebuild' the name (e.g. bo-billy) is sung without the first letter of the name. The verse for the name Billy looks like this: For the name 'Felix', this would be right:

Let's start with the solution:

Step by Step solution about How to resolve the algorithm The Name Game step by step in the jq programming language

Source code in the jq programming language

def capitalize:
  if length==0 then .
  else .[0:1] as $c
  | ($c|ascii_upcase) as $C
  | if $c == $C then .
    else $C + .[1:]
    end
  end;
    
def printVerse:
  {x: (ascii_downcase|capitalize)}
  | .x[0:1] as $x0
  | .y = (if $x0|test("[AEIOU]") then .x | ascii_downcase else .x[1:] end)
  | .b = ((select($x0 == "B") | "") // "b")
  | .f = ((select($x0 == "F") | "") // "f")
  | .m = ((select($x0 == "M") | "") // "m")
  | "\(.x), \(.x), bo-\(.b)\(.y)",
   "Banana-fana fo-\(.f)\(.y)",
   "Fee-fi-mo-\(.m)\(.y)",
   "\(.x)!\n" ;

"Gary", "Earl", "Billy", "Felix", "Mary", "Steve"
| printVerse

  

You may also check:How to resolve the algorithm Pangram checker step by step in the Ceylon programming language
You may also check:How to resolve the algorithm Sorting algorithms/Merge sort step by step in the C programming language
You may also check:How to resolve the algorithm Bioinformatics/Sequence mutation step by step in the Swift programming language
You may also check:How to resolve the algorithm Naming conventions step by step in the Go programming language
You may also check:How to resolve the algorithm Chat server step by step in the Java programming language