Another update from ingydotnet^djgoku
This commit is contained in:
parent
91df62d461
commit
948b86eafa
7604 changed files with 108452 additions and 22726 deletions
6
Task/Filter/Elixir/filter.elixir
Normal file
6
Task/Filter/Elixir/filter.elixir
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
iex(10)> numbers = Enum.to_list(1..9)
|
||||
[1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
iex(11)> Enum.filter(numbers, fn x -> rem(x,2)==0 end)
|
||||
[2, 4, 6, 8]
|
||||
iex(12)> for x <- numbers, rem(x,2)==0, do: x # comprehension
|
||||
[2, 4, 6, 8]
|
||||
|
|
@ -1,27 +1,12 @@
|
|||
fn main() {
|
||||
// Create a new vector, then use retain to filter what we want.
|
||||
// Hopefully we will see .copy_iter() or .clone_iter() soon so
|
||||
// we can write code like this:
|
||||
|
||||
/*
|
||||
let nums = range(1i32, 20i32).collect::<Vec<i32>>();
|
||||
let evens = nums.copy_iter().filter(|x| x % 2 == 0).collect::<Vec<i32>>();
|
||||
for i in evens.iter() {
|
||||
println!("{}", i)
|
||||
}
|
||||
*/
|
||||
println!("new vec filtered: ");
|
||||
let nums = range(1i32, 20i32).collect::<Vec<i32>>();
|
||||
let evens = nums.iter().map(|x| x.clone()).filter(|x| x % 2 == 0).collect::<Vec<i32>>();
|
||||
for i in evens.iter() {
|
||||
println!("{}", i)
|
||||
}
|
||||
let nums: Vec<i32> = (1..20).collect();
|
||||
let evens: Vec<i32> = nums.iter().cloned().filter(|x| x % 2 == 0).collect();
|
||||
println!("{:?}", evens);
|
||||
|
||||
// Filter an already existing vector
|
||||
println!("original vec filtered: ");
|
||||
let mut nums = range(1i32, 20i32).collect::<Vec<i32>>();
|
||||
let mut nums: Vec<i32> = (1..20).collect();
|
||||
nums.retain(|x| x % 2 == 0);
|
||||
for i in nums.iter() {
|
||||
println!("{}", i)
|
||||
}
|
||||
println!("{:?}", nums);
|
||||
}
|
||||
|
|
|
|||
47
Task/Filter/VBScript/filter.vb
Normal file
47
Task/Filter/VBScript/filter.vb
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
test_arr_1 = Array(1,2,3,4,5,6,7,8,9,10)
|
||||
test_arr_2 = Array(1,2,3,4,5,6,7,8,9,10)
|
||||
|
||||
WScript.StdOut.Write "Scenario 1: Create a new array"
|
||||
WScript.StdOut.WriteLine
|
||||
WScript.StdOut.Write "Input: " & Join(test_arr_1,",")
|
||||
WScript.StdOut.WriteLine
|
||||
WScript.StdOut.Write "Output: " & filter_create(test_arr_1)
|
||||
WScript.StdOut.WriteBlankLines(2)
|
||||
|
||||
WScript.StdOut.Write "Scenario 2: Destructive approach"
|
||||
WScript.StdOut.WriteLine
|
||||
WScript.StdOut.Write "Input: " & Join(test_arr_2,",")
|
||||
WScript.StdOut.WriteLine
|
||||
WScript.StdOut.Write "Output: " & filter_destruct(test_arr_2)
|
||||
WScript.StdOut.WriteBlankLines(2)
|
||||
|
||||
Function filter_create(arr)
|
||||
ReDim arr_new(0)
|
||||
For i = 0 To UBound(arr)
|
||||
If arr(i) Mod 2 = 0 Then
|
||||
If arr_new(0) = "" Then
|
||||
arr_new(0) = arr(i)
|
||||
Else
|
||||
ReDim Preserve arr_new(UBound(arr_new)+1)
|
||||
arr_new(UBound(arr_new)) = arr(i)
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
filter_create = Join(arr_new,",")
|
||||
End Function
|
||||
|
||||
Function filter_destruct(arr)
|
||||
count = 0
|
||||
For i = 0 To UBound(arr)
|
||||
If arr(i) Mod 2 <> 0 Then
|
||||
count = count + 1
|
||||
For j = i To UBound(arr)
|
||||
If j + 1 <= UBound(arr) Then
|
||||
arr(j) = arr(j+1)
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
Next
|
||||
ReDim Preserve arr(UBound(arr)-count)
|
||||
filter_destruct = Join(arr,",")
|
||||
End Function
|
||||
Loading…
Add table
Add a link
Reference in a new issue