Skip to content

Instantly share code, notes, and snippets.

@CliffordAnderson
Created March 23, 2015 19:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save CliffordAnderson/6ed7e1f9a32abf15d9fd to your computer and use it in GitHub Desktop.
Save CliffordAnderson/6ed7e1f9a32abf15d9fd to your computer and use it in GitHub Desktop.
An Alternative Pig Latin Converter
xquery version "3.0";
declare function local:pig-parser($word as xs:string?) as xs:string?
{
let $vowels := ("a","e","i","o","u","y")
let $first-letter := fn:lower-case(fn:substring($word,1,1))
return
if ($first-letter = $vowels) then $word || "ay"
else local:pig-parser(fn:substring($word,2) || $first-letter)
};
string-join(
let $sentence := "I speak Pig Latin"
for $word in fn:tokenize($sentence, " ")
let $word := local:pig-parser($word)
return $word, " ")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment