multiplyBy

multiplyBy

  • (n1: number) => (n2: number) => number
  1. Multiply one number by another

    const multiplyBy2 = multiplyBy(2)
    multiplyBy2(3) // is 6
    const multiplyBy2 = multiplyBy(2)
    multiplyBy2(3) // is 6
    
    const multiplyBy2 = multiplyBy(2)
    multiplyBy2(3) // is 6
    const multiplyBy2 = multiplyBy(2)
    multiplyBy2(3) // is 6
    
  2. Sometimes we just gotta multiply. Below, Phil and Mary had dinner. Let's use multiplyBy to add the 5% tax and find each of their bills.

    const dinner = {
      phil: [
        { name: 'chicken sandwich', price: 10.5 },
        { name: 'cheese curds', price: 6 },
        { name: 'soda', price: 2.25 },
      ],
      mary: [
        { name: 'reuben', price: 12.25 },
        { name: 'fries', price: 3 },
        { name: 'soda', price: 2.25 },
      ],
    }
    
    const addTax = multiplyBy(1.05)
    const getBill = compose([
      mapValues(get('price')),
      sumValues,
      addTax,
      roundToNearest('0.01'),
    ])
    const getEachBill = mapValues(getBill)
    const bills = getEachBill(dinner)
    console.log(bills)
    // is {
    //   phil: 19.69
    //   mary: 18.38
    // }
    type Item = {
      name: string
      price: number
    }
    type Dinner = Record<string, Item[]>
    const dinner: Dinner = {
      phil: [
        { name: 'chicken sandwich', price: 10.5 },
        { name: 'cheese curds', price: 6 },
        { name: 'soda', price: 2.25 },
      ],
      mary: [
        { name: 'reuben', price: 12.25 },
        { name: 'fries', price: 3 },
        { name: 'soda', price: 2.25 },
      ],
    }
    
    const addTax = multiplyBy(1.05)
    const getPrice = get('price')<Item>
    const getBill = compose([
      mapValues(getPrice)<Item[]>,
      sumValues,
      addTax,
      roundToNearest('0.01'),
    ])
    const getEachBill = mapValues(getBill)<Dinner>
    const bills = getEachBill(dinner)
    console.log(bills)
    // is {
    //   phil: 19.69
    //   mary: 18.38
    // }
    
    const dinner = {
      phil: [
        { name: 'chicken sandwich', price: 10.5 },
        { name: 'cheese curds', price: 6 },
        { name: 'soda', price: 2.25 },
      ],
      mary: [
        { name: 'reuben', price: 12.25 },
        { name: 'fries', price: 3 },
        { name: 'soda', price: 2.25 },
      ],
    }
    
    const addTax = multiplyBy(1.05)
    const getBill = compose([
      mapValues(get('price')),
      sumValues,
      addTax,
      roundToNearest('0.01'),
    ])
    const getEachBill = mapValues(getBill)
    const bills = getEachBill(dinner)
    console.log(bills)
    // is {
    //   phil: 19.69
    //   mary: 18.38
    // }
    type Item = {
      name: string
      price: number
    }
    type Dinner = Record<string, Item[]>
    const dinner: Dinner = {
      phil: [
        { name: 'chicken sandwich', price: 10.5 },
        { name: 'cheese curds', price: 6 },
        { name: 'soda', price: 2.25 },
      ],
      mary: [
        { name: 'reuben', price: 12.25 },
        { name: 'fries', price: 3 },
        { name: 'soda', price: 2.25 },
      ],
    }
    
    const addTax = multiplyBy(1.05)
    const getPrice = get('price')<Item>
    const getBill = compose([
      mapValues(getPrice)<Item[]>,
      sumValues,
      addTax,
      roundToNearest('0.01'),
    ])
    const getEachBill = mapValues(getBill)<Dinner>
    const bills = getEachBill(dinner)
    console.log(bills)
    // is {
    //   phil: 19.69
    //   mary: 18.38
    // }