Skip to content

Instantly share code, notes, and snippets.

@sumitokamoi
sumitokamoi / Array+chunked.swift
Created October 18, 2019 08:45
Swiftで配列をn個の要素に分割する
extension Array {
func chunked(by chunkSize: Int) -> [[Element]] {
return stride(from: 0, to: self.count, by: chunkSize).map {
Array(self[$0..<Swift.min($0 + chunkSize, self.count)])
}
}
}
let arr = [0,1,2,3,4,5,6,7,8,9]
print(arr.chunked(by: 2)) // [[0, 1], [2, 3], [4, 5], [6, 7], [8, 9]]
@sumitokamoi
sumitokamoi / capture.swift
Last active June 29, 2017 04:24
クロージャ内で変数をキャプチャして使う
var nums = (10...19)
let result = nums.enumerated().flatMap { [count = nums.count, x = 10] (offset: Int, element: Int) -> [Int] in
if offset < count / 2 {
return []
}
return [element, element-x]
}
print(result) // [15, 5, 16, 6, 17, 7, 18, 8, 19, 9]
@sumitokamoi
sumitokamoi / quicksort.hs
Created December 15, 2016 09:55
Haskell style quicksort in Swift
quicksort :: (Ord a) => [a] -> [a]
quicksort [] = []
quicksort (x:xs) =
let smallOrEqual = filter (<= x) xs
larger = filter (> x) xs
in quicksort smallOrEqual ++ [x] ++ quicksort larger