Skip to content

Instantly share code, notes, and snippets.

@angel-rs
Last active January 8, 2020 17:22
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 angel-rs/1549a4035fc9f6ac69ca60859d7ec612 to your computer and use it in GitHub Desktop.
Save angel-rs/1549a4035fc9f6ac69ca60859d7ec612 to your computer and use it in GitHub Desktop.
Cassidoo's Interview Question #2 - Filter in Vlang
fn basic_filter(input []int, operation fn(int) bool) []int {
mut output := []int
for value in input {
if operation(value) {
output << value
}
}
return output
}
fn even_numbers(number int) bool {
if number % 2 == 0 {
return true
}
return false
}
fn odd_numbers(number int) bool {
return !even_numbers(number)
}
fn truthy_numbers(number int) bool {
if bool(number) {
return true
}
return false
}
fn falsy_numbers(number int) bool {
return !truthy_numbers(number)
}
fn main() {
input := [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
result1 := basic_filter(input, even_numbers)
result2 := basic_filter(input, odd_numbers)
result3 := basic_filter(input, truthy_numbers)
result4 := basic_filter(input, falsy_numbers)
println('Filter in Vlang')
println('Input: ' + input.str())
println('Even numbers: ' + result1.str())
println('Odd numbers: ' + result2.str())
println('Truthy numbers: ' + result3.str())
println('Falsy numbers: ' + result4.str())
yr := input[1].str() + '' + input[9].str() + '' + input[1].str() + '' + input[9].str() + ''
println('Happy $yr :D ~')
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment