const { List } = Immutable

const merch = () =>
  List.of(x => y => z =>`${x}-${y}-${z}`)
  .ap(List(['teeshirt', 'sweater']))
  .ap(List(['large', 'medium', 'small']))
  .ap(List(['black', 'white']))

const res = merch()
console.log(res)
<!DOCTYPE html>
<html>

  <head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/immutable/3.8.1/immutable.js"></script>
    <script src="https://unpkg.com/immutable-ext@1.0.8/browser_dist/index.js"></script>
    
    
  </head>

  <body>
    <!-- // make console.log write to the page for better in-browser experience -->
    <script>
      (function () {
        var body = document.querySelector('body');
        body.style['fontFamily'] = 'monospace';
        body.style['fontSize'] = '2em';
        console.log = function (x) { body.innerText += x + '\n'; };
      }());
    </script>    
    <script src="script.js"></script>
  </body>

</html>