我正在寻找一种将 a 转换Task<Reader<A, B>>
为ReaderTask<A, B>
使用 TypeScript 的简洁方法。以下似乎可行,但我想知道该功能是否已在 FP-TS 中可用。
import { pipe } from 'fp-ts/lib/pipeable';
import { Task, map } from 'fp-ts/lib/Task';
import { Reader } from 'fp-ts/lib/Reader';
import { ReaderTask } from 'fp-ts/lib/ReaderTask';
function fromTaskReader<A, B>(taskReader: Task<Reader<A, B>>): ReaderTask<A, B> {
return (context: A): Task<B> => pipe(
taskReader,
map((reader) => reader(context)),
);
}