Reason snippets
Opened this issue · 0 comments
genkio commented
recursively reverse a string
let rec recursion = (word: string) =>
switch word {
| "" => ""
| _ =>
recursion(String.sub(word, 1, String.length(word) - 1))
++ String.sub(word, 0, 1)
};
sort string
/*this is simply demonstrate opening module, toLowerCase is now available without Js.String*/
open Js.String;
let sortLetters = str =>
str
|> Js.String.replaceByRe([%re "/[^'a-zA-Z0-9]+/g"], "")
|> Js.String.toLowerCase
|> Js.String.split("")
|> Js.Array.sortInPlace
|> Js.Array.join;
factorial
let rec factorial = (n) =>
n <= 0
? 1
: n * factorial(n - 1);
early return
while (! break^) {
if (Random.int(10) === 3) {
break := true
} else {
print_endline("hello")
}
};
convert multi-line string into single line
let singlelineString =
String.map(
c =>
switch (c) {
| '\n' => ' '
| _ => c
},
multilineString
);
find item that is less than 4 in a list
[8, 3, 6, 1]
|> List.sort(compare)
|> List.rev
|> List.find(x => x < 4);
convert list to string using fold_left (equivalent of Array.reduce in JavaScript)
let listOfString = (input: list(string)): string => List.fold_left((acc, x) => acc ++ x, "")(input);
create a list of given elements and length recursively
let rec fill = (~element: 'a, ~length: int): list('a) =>
if (length <= 0) {
[];
} else {
[element, ...fill(~element, ~length=length-1)];
};