별 그리기
<script>
_.go(
_.range(1, 6), // 별의 최대 개수
_.map(_.range),
_.map(_.map(_ => '*')),
_.map(_.reduce((a,b) => `${a}${b}`)),
_.reduce((a,b) => `${a}\n${b}`),
console.log);
</script>
지연적으로 만들기
<script>
_.go(
L.range(1, 6), // 별의 최대 개수
L.map(L.range),
L.map(L.map(_ => '*')),
L.map(_.reduce((a,b) => `${a}${b}`)),
_.reduce((a,b) => `${a}\n${b}`),
console.log);
</script>
다른 방법
<script>
_.go(
L.range(1, 6),
L.map(s => _.go( //s: stop 값
L.range(s),
L.map(_ => '*'),
_.reduce((a,b) => `${a}${b}`)
)),
_.reduce((a,b) => `${a}\n${b}`),
console.log);
</script>
다른 방법
<script>
// seperator
const join = sep => _.reduce((a,b) => `${a}${sep}${b}`);
_.go(
L.range(1, 6), // 별의 최대 개수
L.map(L.range),
L.map(L.map (_ => '*')),
L.map(join('')),
join('\n'),
console.log);
</script>
_.go(
L.range(2, 10), // 2이상 10미만
L.map(a => _.go(
L.range(1, 10), // 각각마다 1이상 10미만까지 돈다
L.map(b => `${a}x${b}=${a*b}`), // a x b = ab
join('\n') // join하며 new line
)),
join('\n\n'), // new line 두 번씩 (구구단별로 나눠지게)
console.log);