B) // こちらも同じく合っているかはわからないです func to<A, B, C>(_ f: @escaping (C) -> (A, B)) -> ((C) -> A, (C) -> B) { return ( { c in return f(c).0 }, { c in return f(c).1 } ) } func from<A, B, C>(_ f: ((C) -> A, (C) -> B)) -> (C) -> (A, B) { return { c in let a = f.0(c) let b = f.1(c) return (a, b) } } 36