Quick actions

cmd+k|ctrl+k

Navigation

Languages

test

Snippet info

Language

Raku

Visibility

public

Author

lingbe

Created

2024-10-05T05:42:05.416108Z

Updated

2024-10-07T03:04:33.693083Z

# say 'Hello World!';

# my $name = 'John Doe';
# say 'Hello $name';
# say "Hello $name";

# my %capitals = 'UK', 'London', 'Germany', 'Berlin';
# say %capitals;

# say "fotbar" ~~ / <!after foo> bar /;    # OUTPUT: «bar␤»
# say "foobar" ~~ / <?after foo> bar /;   # OUTPUT: «bar␤»

my @tracks = (
    "TRMMMNS128F93548E1<SEP>SOYGNWH12AB018191E<SEP>3 Gars Su'l Sofa<SEP>L'antarctique",
    "TRMMMPJ128F9306985<SEP>SOQMZZI12AB01850D4<SEP>Christian Castro<SEP>Tu Vida Con La Mía",
    "TRMMMKQ128F92EBCB5<SEP>SOOLRHW12A8C142643<SEP>Kreator<SEP>All of the same blood",
    "TRMMMHS128F42A0971<SEP>SOMXBRA12AB017C656<SEP>The Emotions<SEP>Blessed",
    "TRMMWJS12903CBB7F5<SEP>SOLBDWO12AB0188CC2<SEP>Aerosmith<SEP>Remember (Walking In The Sand)"
);
my @tracks2 = (
    "TRMCFLR128F92F34FC<SEP>SOXBSOF12A8C1436AE<SEP>Full Flava<SEP>Rescue Me (Taste Of Flava Remix) (feat Hazel Fernandes)",
    "TRNHWIZ128F93164A0<SEP>SOCESGY12AB018543C<SEP>Neil Young<SEP>Ive Been Waiting For You [Previously Unreleased Mix]",
    "TRMUDCR12903CA7BAA<SEP>SOJBAOJ12A8AE47999<SEP>Franky Pank<SEP>Filet Mignon \{Doomsday\}",
    "TRNGBKC12903CE5953<SEP>SOBJIRH12AB018BF53<SEP>Atahualpa Yupanqui<SEP>Ahí Andamos\\ Señor",
    "TRFIOAR128F93153DC<SEP>SOCTJMJ12AB0185CDA<SEP>Sonny Terry / Brownie McGhee<SEP>Understand / Me",
    "TRMUDCR12903CA7ADF<SEP>SOJBAOJ12A8AE47050<SEP>Frank Sinatra<SEP>Strangers In The_Night (Remastered Album Version) [The Frank Sinatra Collection]",
    "TRMMGQU128F9340803<SEP>SOLTFTE12A8C13718B<SEP>Paul Miller<SEP>Memories Of Love - Original Mix",
    "TRNGBMI128F4253718<SEP>SOJPIVB12A8C13302F<SEP>Illuminate<SEP>Outro: \"Alles_ Was Blieb",
    "TRNGVLK12903CC942B<SEP>SOFFWQH12AB018C366<SEP>Sturm Café<SEP>Sturm Café \"Der Löwe Ist Zuruck",
    "TRNCYSN128F9300977<SEP>SOVHMDW12AB017E669<SEP>Jimmy Burns<SEP>Baby Don`t Do It",
    "TRNRYSZ128F425806B<SEP>SOPTQQY12A8AE4717E<SEP>Victims Family<SEP>Vinnie + 1",
    "TRNQNWN128F932E118<SEP>SOUUWRZ12AB0188A67<SEP>Under The Drone<SEP>Waste = Burn / Beauty",
    "TRNQDIN128F9302583<SEP>SOGNLSX12AAF3B145B<SEP>K3 Feat. Alice Lascelles<SEP>Play To Win feat. Wesley S Remix",
    "TRMQWOS128F42AE007<SEP>SOBWHYN12A8C13DB4F<SEP>Anthony Hamilton<SEP>Preacher's Daughter featuring Tarsha McMillian",

    "TRMUDCR12903CA7ADF<SEP>SOJBAOJ12A8AE47050<SEP>Frank Sinatra<SEP>Strangers In The Night (Remastered Album Version) [The Frank Sinatra Collection]",
    "TRNGCCE128F4215E1B<SEP>SOXZKUO12A6D4FC481<SEP>John Brown\'s Body<SEP>Blazing's Love"
);
my @tracks3 = (
    "TRMMHSX128F92D8F4D<SEP>SOYKXMF12A58A79AE4<SEP>Asheru And Blue Black Of The Unspoken Heard<SEP>How You Livin? f/J-Live & Grap Luva & Sondia",
    "TRHGJIW128F421CBA7<SEP>SOQRZSW12A6D4FEBFB<SEP>Sexappeal<SEP>¿Por Que No Dejas Ese Loco?",
    "TRMWVCV128F9344EF0<SEP>SOTJHZJ12AB0182F54<SEP>None More Black<SEP>You Suck! But Your Peanut Butter's OK",
    "TRRCOCB128F42689D2<SEP>SOAGUFA12A8AE478DA<SEP>Héroes del Silencio<SEP>¡ Rueda_ Fortuna ! (Live Version 1995)",
    "TRMMHMD128F427428D<SEP>SOPWMAB12A58A7E8E9<SEP>Blue Foundation<SEP>02.17 AM",
    "TRMHGSI128F4272C6C<SEP>SOPAFYQ12A8C13500E<SEP>Marvin Hamlisch;John Lithgow;Jeffrey Huard<SEP>I ;Cannot ;Hear the City (Jack Noseworthy with Marvin Hamlisch at the piano)",
    "TRMMUOV128F14550D0<SEP>SOYOOFW12A6D4F859A<SEP>Endellion String Quartet<SEP>String Quartet No.3 in D major Op.18 No.3 : I Allegro",
    "TRMMJXM128F4250CBA<SEP>SOLUYOV12AF72A655B<SEP>Eric B. & Rakim<SEP>Set 'E&m Straight",
    "TRMEGTF128F4216F47<SEP>SONOMZJ12A6D4FB39D<SEP>Sole<SEP>Da Year ov Da \$exxx Symbl (Vocal)",
    "TRMIWTC12903CF9ED9<SEP>SOYSLAJ12A58A789EC<SEP>Consequence<SEP>Wack N*ggas",
    "TRMMDSM128F9301C01<SEP>SONYDXG12AB017EF87<SEP>Tonex<SEP>F@ce Down",
    "TRMXSDC128F427AF0E<SEP>SOUYOAK12A8C136985<SEP>Williamson<SEP>2%er",
    "TRMKVMA12903CA3C66<SEP>SORRWZX12AB01884A6<SEP>The Beautiful People<SEP>Sleepless Nights #2",
    "TRPKKCH128F427478C<SEP>SOKGPHO12A8C13A896<SEP>Reginald Dixon<SEP>Irish Washerwoman | Peggy O'Neill | The Rose Of Tralee | Killarney | St patrick's day",
    "TRMMRNI128EF34C4A7<SEP>SOUOLRQ12A6BD5074E<SEP>Elakelaiset<SEP>Humppakavalier"
);
my @tracks4_7 = (
    "  '  Quik's Groove VII  '  ",
    "'  Burn 'Em Down  '",
    "Truck Drivin' man '",
    "'  ll B'e Back",
    "  Show Me' The Way  ",
    "Hel_lo9 'World",
    "Hello9 'World"
);
my @tracks8 = (
    "King OF tHe hill",
    "outstanding 'of the with",
    "no where to hide",
    "to !my dear with"
);

# for @tracks -> $track { 

# 	################
# 	# LAB 1 TASK 1 #
# 	################
# 	## Edit the regex below to capture only song title
# 	##
# 	say $track;
	
#     my $song_title = /\<SEP\> .* \<SEP\> .* \<SEP\> (.*)/;
#     # my $song_title = rx/^ SEP !(?before .*SEP) .* $/;


# 	if ($track ~~ $song_title) {
# 	    say $0;
# 	##		
# 	############################# End Task 1
		
# 		# $0 should be the title caught by regex first set of parens
# 		# It is added to end of the array		
# # 		@tracktitles.push: $0;
# 	}
# 	say "\n";
# } 

######Task 2#########################################################################
# my $str = "TRMMWJS12903CBB7F5<SEP>SOLBDWO12AB0188CC2<SEP>Aerosmith<SEP>Remember (Walking In The Sand)"
# $str ~~ s/W/K/;  
# say $str;

# $_ = 'The Replacements';
# my $substitution = s/Replace/Entrap/;
# # s/Replace/Entrap/;
# # .say;                    # OUTPUT: «The Entrapments␤»
# $_ ~~ $substitution;
# say $_;

# # This loops through each track
# for @tracks2 -> $title { 

# 	##########################
# 	# LAB 1 TASK 2           #
# 	##########################
# 	## Add regex substitutions to remove superflous comments and all that follows them
# 	## Assign to $_ with smartmatcher (~~)
# 	########################## 
# 	say $title;
#     $_ = $title;
#     my $song_title = /\<SEP\> .* \<SEP\> .* \<SEP\> (.*)/;
#     $_ ~~ $song_title;
#     $_ = $0;
#     say $_;
    
# 	# Uncomment and replace ... with a substition for ( and anything that follows
# 	$_ ~~ s/<[\( \[ \{ \\ \/ _ \- : \" ` \+ =]>.*//;
#     say $_;
    
# 	# Repeat for the other symbols
#     $_ ~~ s/feat\. .*//;

#     say $_;
#     say "\n";
# 	########################## End Task 2
	
# 	# Add the edited $title to the new array of titles
# # 	@filteredtitles.push: $_;
# }

##############################################################################

# my $string = "This is a #test string.";
# say $string;
# $string = $string.subst('#', 'HASH');
# say $string;  # Output: This is a HASHtest string.
##########################
# LAB 1 TASK 3           #
##########################
## Add regex substitutions to remove punctuation
## Remember to permit the apostrophe ' (near enter key)
## Use the g (global) directive
##########################

# for @tracks3 -> $title { 
# 	##########################
# 	say $title;
# 	$_ = $title;
# 	# Uncomment and replace ... with a substition for ?
# 	$_ ~~ s:g/<[ \? \x[00BF] ! \x[00A1] \. ; : & \$ \* @ % \x[0023] \|]>//;
# 	say $_;

# 	# Repeat for the other symbols
# # 	my $hash = /#/;
# # 	$_ = $_.subst('#');
#     # $ ~~ s:g/$hash//;
# # 	say $_;

#     say "\n";
# 	########################## End Task 3
# 	# Add the edited $title to the new array of titles
# # 	@filteredtitles.push: $_;
# }

################################################################################

# my $string = "'''  Hello 'World!  '''";
# say $string;
# $string ~~ s:g/^ \'+//;
# $string ~~ s:g/\'+ $//;
# say $string;  # Output: "Hello World!"
# $string ~~ s:g/^ \s+//;
# $string ~~ s:g/\s+ $//;
# say $string;

# my $string ="Hello9 'World"; # should return False
# # my $string ="Hel_lo9 'World"; # should return True
# # my $pattern = /<-[\w\s\']>/;
# my $pattern = /<-[a..zA..Z\d\s\']>/;
# say so $string ~~ $pattern;
# if ($string ~~ $pattern) {
#     say 'yes, it matches';
# } else {
#     say "no, it doesn't match";
# }
# exit;

# # my $string ="  ";
# my $string ="''";
# # my $pattern = /^\s*$/;
# # my $pattern = /^\'*$/;
# my $pattern = /^\'$/;
# say so $string ~~ $pattern;
# if ($string ~~ $pattern) {
#     say 'yes, it matches';
# } else {
#     say "no, it doesn't match";
# }
# exit;

# This removes non-English characters, trailing whitespace, and blank titles
##########################
# TASK 4, 5, 6, 7 Below  #
##########################
## These are small tasks, where each "<your code here>"
##   will be either a regex substitution 
##   or an if statement and a subsequent action (e.g. skip to next without adding)
##########################

# # This loops through each track
# for @tracks4_7 -> $title {

# 	##########################
# 	# LAB 1 TASK 4           #
# 	##########################
# 	## Add regex substitutions to (1) leading and trailing apostrophes.
# 	##    and then (2) trim leading and trailing whitespace
# 	## There will be some trailing apostrophes left after the trailing whitespace is removed
# 	##########################

# 	# replace leading/trailing apostrophe
# 	say $title;
# 	$_ = $title;

# 	# Uncomment and replace ... with a substition to trim apostrophes
# 	$_ ~~ s:g/^ \'+//;    # trim leading apostrophes
# 	$_ ~~ s:g/\'+ $//;    # trim trailing apostrophes
#     say $_;
# 	# Uncomment and replace ... with a substition to trim whitespace
# 	$_ ~~ s:g/^ \s+//;    # trim leading whitespace
# 	$_ ~~ s:g/\s+ $//;    # trim trailing whitespace
	
#     say $_;
#     # say "\n";
# 	########################## End Task 4


# 	##########################
# 	# LAB 1 TASK 5           #
# 	##########################
# 	## Filter out non-ASCII characters 
# 	## (letters, numbers, apostophe, space allowed)
# 	##########################

# 	# Use "next;" to skip lines containing non-ASCII characters
# 	##########################
#     if ($_ ~~ /<-[a..zA..Z\d\s\']>/) {
#         say 'yes, skip this';
#         say "\n";
#         next;
#     } else {
#         say "no, keep it";
#     }
# 	##########################
	
# 	########################## End Task 5

	

# 	##########################
# 	# LAB 1 TASK 6           #
# 	##########################
# 	## Skip title if (1) blank contains only whitespace, 
# 	## or (2) contains only apostrophes
# 	##########################

# 	# skip if only contains whitespace
# 	##########################
#     if ($_ ~~ /^\s*$/) {
#         next;
#     }
# 	##########################


# 	# skip if only contains only an apostrophe
# 	##########################
#     # my $pattern = /^\s*$/;
#     if ($_ ~~ /^\'*$/) {
#         next;
#     }
# 	##########################

# 	########################## End Task 6


# 	##########################
# 	# LAB 1 TASK 7           #
# 	##########################
# 	## Set to lowercase 
# 	##########################		
# 	# minor edit needed to this line (raku has a handy function)
# # 	@filteredtitles.push: $_.lc;
#     say $_.lc;
# 	########################## End Task 7
# 	say "\n";
# }
# # Updates @tracks	
# # 	return @filteredtitles;			

###############################################################################
# my $text = "Hello World, welcome to the world!";
# $text ~~ s:i:g/world/universe/;
# say $text;  # OUTPUT: "Hello universe, welcome to the universe!"
# # exit;

# 「hello world」
# say "h!ello worl!d" ~~ rx/ \w+<|wb>\s*<|wb>\w+ /;
# 「helloworld」
# say "hello!world" ~~ rx/ \w+<!wb>\s*<!wb>\w+ /;
# say "!than the of ! " ~~ /<?after \s><|w>of|the<|w>\s/;
# exit;

# say "outsanding fatty onery king of hill" ~~ /<?after <|w>>of<?before <|w>>\s?/;
# say "Kong of the Hill" ~~ /<?after <|w>>of<?before <|w>>\s?/;

# my $string = "To !a Kong of the Hill With the!";
# say $string;
# # my $pattern = s:g/<?after <|w>>(a|an|and|by|for|from|in|of|on|or|out|the|to|with)<?before <|w>>//;
# # my $pattern = /<?after |w>(of|the|a|an|and|by|for|from|in|on|or|out|to|with)<|w>\s/;
# # my $pattern = /<|w>(of|the|a|an|and|by|for|from|in|on|or|out|to|with)<|w>\s/;
# # $string ~~ s:i:g/$pattern//;
# $string ~~ s:i:g/<|w>(of|the|a|an|and|by|for|from|in|on|or|out|to|with)<|w>\s//;
# # $string ~~ s:g/\'+ $//;
# say $string;  # Output: "Hello World!"
# # $string ~~ s:g/^ \s+//;
# # $string ~~ s:g/\s+ $//;
# # say $string;
# exit;

	##########################
	# LAB 1 TASK 8 #
	##########################
	## Add regex substitutions to remove common stopwords
	## Use <|w> (word boundaries) in your regexs
	## Also trim the single space following the word
	## Use the g (global) directive
	## Use the i (case insensitive) directive
	##########################
	for @tracks8 -> $title { 

		##########################
		$_ = $title;
		say $title;

		# Uncomment and replace ... with a substitution for "a"
		$_ ~~ s:i:g/<|w>(of|the|a|an|and|by|for|from|in|on|or|out|to|with)<|w>\s//;

		# Repeat for the other stopwords

        say $_;
        say "\n";
		##########################
		# Add the edited $title to the new array of titles
# 		@filteredtitles.push: $_;
	}

################################################################################

INFO