The Name Game: Difference between revisions

Content added Content deleted
m (→‎{{header|Wren}}: Minor tidy)
 
Line 946: Line 946:


=={{header|EasyLang}}==
=={{header|EasyLang}}==
<syntaxhighlight>
Unlike most other implementations presented in this page, this one actually handles consonant clusters, just like the original song.
proc verse x$ . .

x1$ = substr x$ 1 1
<syntaxhighlight lang="easylang">
y$ = substr x$ 2 99
proc toLowercase string$ . result$ .
if strpos "AEIOU" x1$ <> 0
for i = 1 to len string$
code = strcode substr string$ i 1
h$ = strchar (strcode x1$ + 32)
if code >= 65 and code <= 90
y$ = h$ & y$
code += 32
.
result$ &= strchar code
.
.
b$ = "b" & y$
.
f$ = "f" & y$
proc findInStrArray array$[] item$ . index .
for i = 1 to len array$[]
m$ = "m" & y$
if array$[i] = item$
if x1$ = "B"
index = i
b$ = y$
return
elif x1$ = "F"
.
f$ = y$
elif x1$ = "M"
m$ = y$
.
.
print x$ & ", " & x$ & ", bo-" & b$
index = 0
print "Banana-fana fo-" & f$
.
print "Fee-fi-mo-" & m$
# This version actually handles consonant clusters
print x$ & "!"
name$ = input
toLowercase name$ lowerName$
vowels$[] = [ "a" "e" "i" "o" "u" ]
for i = 1 to len lowerName$
letter$ = substr lowerName$ i 1
findInStrArray vowels$[] letter$ index
if index <> 0
truncName1$ = substr lowerName$ i len lowerName$
break 1
.
truncName1$ = ""
.
firstLetter$ = substr lowerName$ 1 1
if firstLetter$ <> "b"
b$ = "b"
.
if firstLetter$ <> "f"
f$ = "f"
.
if firstLetter$ <> "m"
m$ = "m"
.
if b$ = "" or f$ = "" or m$ = ""
truncName2$ = substr lowerName$ 2 len lowerName$
.
# Determine the appropriate name for each line
if b$ = ""
bName$ = truncName2$
else
bName$ = truncName1$
.
if f$ = ""
fName$ = truncName2$
else
fName$ = truncName1$
.
.
for n$ in [ "Gary" "Earl" "Billy" "Felix" "Mary" ]
if m$ = ""
mName$ = truncName2$
verse n$
print ""
else
mName$ = truncName1$
.
.
# Print the song
print name$ & ", " & name$ & ", " & "bo-" & b$ & bName$
print "Banana-fana fo-" & f$ & fName$
print "Fee-fi-mo-" & m$ & mName$
print name$ & "!"
</syntaxhighlight>
</syntaxhighlight>
{{in}}
<pre>
Gary
Earl
Billy
Shirley
</pre>
{{out}}
<pre>
Gary, Gary, bo-bary
Banana-fana fo-fary
Fee-fi-mo-mary
Gary!
Earl, Earl, bo-bearl
Banana-fana fo-fearl
Fee-fi-mo-mearl
Earl!
Billy, Billy, bo-illy
Banana-fana fo-filly
Fee-fi-mo-milly
Billy!
Shirley, Shirley, bo-birley
Banana-fana fo-firley
Fee-fi-mo-mirley
Shirley!
</pre>


=={{header|F_Sharp|F#}}==
=={{header|F_Sharp|F#}}==