Function compose

  • A generic compose function that takes multiple functions as input and outputs a single function where input = input of the first function and output = output where every funtion has been applied to the output of the previous one.

    So

    compose(f1:(x:A)=>B, f2:(x:B)=>C, f3:(x:C)=>D)
    

    will return a single unary function

    (a:A):D => f3(f2(f1(a)))
    

    Returns

    Type Parameters

    • A

    • B

    Parameters

    • fn1: ((x: A) => B)
        • (x: A): B
        • Parameters

          • x: A

          Returns B

    Returns ((x: A) => B)

      • (x: A): B
      • Parameters

        • x: A

        Returns B

  • Type Parameters

    • A

    • B

    • C

    Parameters

    • fn1: ((x: A) => B)
        • (x: A): B
        • Parameters

          • x: A

          Returns B

    • fn2: ((x: B) => C)
        • (x: B): C
        • Parameters

          • x: B

          Returns C

    Returns ((x: A) => C)

      • (x: A): C
      • Parameters

        • x: A

        Returns C

  • Type Parameters

    • A

    • B

    • C

    • D

    Parameters

    • fn1: ((x: A) => B)
        • (x: A): B
        • Parameters

          • x: A

          Returns B

    • fn2: ((x: B) => C)
        • (x: B): C
        • Parameters

          • x: B

          Returns C

    • fn3: ((x: C) => D)
        • (x: C): D
        • Parameters

          • x: C

          Returns D

    Returns ((x: A) => D)

      • (x: A): D
      • Parameters

        • x: A

        Returns D

  • Type Parameters

    • A

    • B

    • C

    • D

    • E

    Parameters

    • fn1: ((x: A) => B)
        • (x: A): B
        • Parameters

          • x: A

          Returns B

    • fn2: ((x: B) => C)
        • (x: B): C
        • Parameters

          • x: B

          Returns C

    • fn3: ((x: C) => D)
        • (x: C): D
        • Parameters

          • x: C

          Returns D

    • fn4: ((x: D) => E)
        • (x: D): E
        • Parameters

          • x: D

          Returns E

    Returns ((x: A) => E)

      • (x: A): E
      • Parameters

        • x: A

        Returns E

  • Type Parameters

    • A

    • B

    • C

    • D

    • E

    • F

    Parameters

    • fn1: ((x: A) => B)
        • (x: A): B
        • Parameters

          • x: A

          Returns B

    • fn2: ((x: B) => C)
        • (x: B): C
        • Parameters

          • x: B

          Returns C

    • fn3: ((x: C) => D)
        • (x: C): D
        • Parameters

          • x: C

          Returns D

    • fn4: ((x: D) => E)
        • (x: D): E
        • Parameters

          • x: D

          Returns E

    • fn5: ((x: E) => F)
        • (x: E): F
        • Parameters

          • x: E

          Returns F

    Returns ((x: A) => F)

      • (x: A): F
      • Parameters

        • x: A

        Returns F

  • Type Parameters

    • A

    • B

    • C

    • D

    • E

    • F

    • G

    Parameters

    • fn1: ((x: A) => B)
        • (x: A): B
        • Parameters

          • x: A

          Returns B

    • fn2: ((x: B) => C)
        • (x: B): C
        • Parameters

          • x: B

          Returns C

    • fn3: ((x: C) => D)
        • (x: C): D
        • Parameters

          • x: C

          Returns D

    • fn4: ((x: D) => E)
        • (x: D): E
        • Parameters

          • x: D

          Returns E

    • fn5: ((x: E) => F)
        • (x: E): F
        • Parameters

          • x: E

          Returns F

    • fn6: ((x: F) => G)
        • (x: F): G
        • Parameters

          • x: F

          Returns G

    Returns ((x: A) => G)

      • (x: A): G
      • Parameters

        • x: A

        Returns G

  • Type Parameters

    • A

    • B

    • C

    • D

    • E

    • F

    • G

    • H

    Parameters

    • fn1: ((x: A) => B)
        • (x: A): B
        • Parameters

          • x: A

          Returns B

    • fn2: ((x: B) => C)
        • (x: B): C
        • Parameters

          • x: B

          Returns C

    • fn3: ((x: C) => D)
        • (x: C): D
        • Parameters

          • x: C

          Returns D

    • fn4: ((x: D) => E)
        • (x: D): E
        • Parameters

          • x: D

          Returns E

    • fn5: ((x: E) => F)
        • (x: E): F
        • Parameters

          • x: E

          Returns F

    • fn6: ((x: F) => G)
        • (x: F): G
        • Parameters

          • x: F

          Returns G

    • fn7: ((x: G) => H)
        • (x: G): H
        • Parameters

          • x: G

          Returns H

    Returns ((x: A) => H)

      • (x: A): H
      • Parameters

        • x: A

        Returns H

  • Type Parameters

    • A

    • B

    • C

    • D

    • E

    • F

    • G

    • H

    • I

    Parameters

    • fn1: ((x: A) => B)
        • (x: A): B
        • Parameters

          • x: A

          Returns B

    • fn2: ((x: B) => C)
        • (x: B): C
        • Parameters

          • x: B

          Returns C

    • fn3: ((x: C) => D)
        • (x: C): D
        • Parameters

          • x: C

          Returns D

    • fn4: ((x: D) => E)
        • (x: D): E
        • Parameters

          • x: D

          Returns E

    • fn5: ((x: E) => F)
        • (x: E): F
        • Parameters

          • x: E

          Returns F

    • fn6: ((x: F) => G)
        • (x: F): G
        • Parameters

          • x: F

          Returns G

    • fn8: ((x: G) => H)
        • (x: G): H
        • Parameters

          • x: G

          Returns H

    • fn7: ((x: H) => I)
        • (x: H): I
        • Parameters

          • x: H

          Returns I

    Returns ((x: A) => I)

      • (x: A): I
      • Parameters

        • x: A

        Returns I

  • Type Parameters

    • A

    • B

    • C

    • D

    • E

    • F

    • G

    • H

    • I

    • J

    Parameters

    • fn1: ((x: A) => B)
        • (x: A): B
        • Parameters

          • x: A

          Returns B

    • fn2: ((x: B) => C)
        • (x: B): C
        • Parameters

          • x: B

          Returns C

    • fn3: ((x: C) => D)
        • (x: C): D
        • Parameters

          • x: C

          Returns D

    • fn4: ((x: D) => E)
        • (x: D): E
        • Parameters

          • x: D

          Returns E

    • fn5: ((x: E) => F)
        • (x: E): F
        • Parameters

          • x: E

          Returns F

    • fn6: ((x: F) => G)
        • (x: F): G
        • Parameters

          • x: F

          Returns G

    • fn7: ((x: G) => H)
        • (x: G): H
        • Parameters

          • x: G

          Returns H

    • fn8: ((x: H) => I)
        • (x: H): I
        • Parameters

          • x: H

          Returns I

    • fn9: ((x: I) => J)
        • (x: I): J
        • Parameters

          • x: I

          Returns J

    Returns ((x: A) => J)

      • (x: A): J
      • Parameters

        • x: A

        Returns J

  • Type Parameters

    • A

    • B

    • C

    • D

    • E

    • F

    • G

    • H

    • I

    • J

    • K

    Parameters

    • fn1: ((x: A) => B)
        • (x: A): B
        • Parameters

          • x: A

          Returns B

    • fn2: ((x: B) => C)
        • (x: B): C
        • Parameters

          • x: B

          Returns C

    • fn3: ((x: C) => D)
        • (x: C): D
        • Parameters

          • x: C

          Returns D

    • fn4: ((x: D) => E)
        • (x: D): E
        • Parameters

          • x: D

          Returns E

    • fn5: ((x: E) => F)
        • (x: E): F
        • Parameters

          • x: E

          Returns F

    • fn6: ((x: F) => G)
        • (x: F): G
        • Parameters

          • x: F

          Returns G

    • fn7: ((x: G) => H)
        • (x: G): H
        • Parameters

          • x: G

          Returns H

    • fn8: ((x: H) => I)
        • (x: H): I
        • Parameters

          • x: H

          Returns I

    • fn9: ((x: I) => J)
        • (x: I): J
        • Parameters

          • x: I

          Returns J

    • fn10: ((x: J) => K)
        • (x: J): K
        • Parameters

          • x: J

          Returns K

    Returns ((x: A) => K)

      • (x: A): K
      • Parameters

        • x: A

        Returns K

  • Type Parameters

    • A

    • B

    • C

    • D

    • E

    • F

    • G

    • H

    • I

    • J

    • K

    Parameters

    • fn1: ((x: A) => B)
        • (x: A): B
        • Parameters

          • x: A

          Returns B

    • fn2: ((x: B) => C)
        • (x: B): C
        • Parameters

          • x: B

          Returns C

    • fn3: ((x: C) => D)
        • (x: C): D
        • Parameters

          • x: C

          Returns D

    • fn4: ((x: D) => E)
        • (x: D): E
        • Parameters

          • x: D

          Returns E

    • fn5: ((x: E) => F)
        • (x: E): F
        • Parameters

          • x: E

          Returns F

    • fn6: ((x: F) => G)
        • (x: F): G
        • Parameters

          • x: F

          Returns G

    • fn7: ((x: G) => H)
        • (x: G): H
        • Parameters

          • x: G

          Returns H

    • fn8: ((x: H) => I)
        • (x: H): I
        • Parameters

          • x: H

          Returns I

    • fn9: ((x: I) => J)
        • (x: I): J
        • Parameters

          • x: I

          Returns J

    • fn10: ((x: J) => K)
        • (x: J): K
        • Parameters

          • x: J

          Returns K

    • Rest ...moreFns: ((x: unknown) => unknown)[]

    Returns ((x: A) => unknown)

      • (x: A): unknown
      • Parameters

        • x: A

        Returns unknown

Generated using TypeDoc