JavaScript関数型プログラミング 8章のサンプルコードの2025版

JavaScript関数型プログラミング 複雑性を抑える発想と実践法を学ぶ - インプレスブックス
エレガントさだけではない関数型のメリット

本のサンプルコードはRxJS v4かv5用。v4、v5で試してもエラーで動かない箇所があるので、最新バージョンで試しました

npm install --save rxjs@7.8.2Code language: Bash (bash)

p302

import Rx from "rxjs";

Rx.range(1, 3)
    .subscribe({
        next: (n) => console.log(`Next: ${n}`),
        error: (err) => console.error(`Error: ${err}`),
        complete: () => console.log('Completed'),
    });
Code language: JavaScript (javascript)

p303

const squreGenerator = function* (n) {
    for (let i = 1; i <= n; i += 1) {
        yield i * i;
    }
}

const rxSquares = Rx.from(squreGenerator(3));

rxSquares.subscribe({next: (n) => console.log(`Next: ${n}`)});

//-> Next: 1
//-> Next: 4
//-> Next: 9Code language: JavaScript (javascript)

p304

Rx.of(1, 2, 3, 4, 5)
    .pipe(Rx.filter(n => n % 2 !== 0))
    .pipe(Rx.map(n => n * n))
    .subscribe({
        next: (n) => console.log(`Next: ${n}`),
    });

//-> Next: 1
//-> Next: 9
//-> Next: 25Code language: JavaScript (javascript)

p306

Rx.fromEvent(document.querySelector('#student-ssn'), 'change')
    .pipe(Rx.map(x => x.target.value))
    .pipe(Rx.map(cleanInput))
    .pipe(Rx.map(checkLengthSsn))
    .subscribe({
        next: (ssn) => console.log(ssn.isRight ? 'Valid' : 'Invalid'),
    });
Code language: JavaScript (javascript)

タイトルとURLをコピーしました