Another update from ingydotnet^djgoku

This commit is contained in:
Ingy döt Net 2015-11-18 06:14:39 +00:00
parent 91df62d461
commit 948b86eafa
7604 changed files with 108452 additions and 22726 deletions

View 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]

View file

@ -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);
}

View 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