Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
20
Task/Forward-difference/Swift/forward-difference.swift
Normal file
20
Task/Forward-difference/Swift/forward-difference.swift
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
func forwardsDifference<T: SignedNumeric>(of arr: [T]) -> [T] {
|
||||
return zip(arr.dropFirst(), arr).map({ $0.0 - $0.1 })
|
||||
}
|
||||
|
||||
func nthForwardsDifference<T: SignedNumeric>(of arr: [T], n: Int) -> [T] {
|
||||
assert(n >= 0)
|
||||
|
||||
switch (arr, n) {
|
||||
case ([], _):
|
||||
return []
|
||||
case let (arr, 0):
|
||||
return arr
|
||||
case let (arr, i):
|
||||
return nthForwardsDifference(of: forwardsDifference(of: arr), n: i - 1)
|
||||
}
|
||||
}
|
||||
|
||||
for diff in (0...9).map({ nthForwardsDifference(of: [90, 47, 58, 29, 22, 32, 55, 5, 55, 73], n: $0) }) {
|
||||
print(diff)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue