Я пытаюсь выучить Purescript.Большая часть литературы посвящена абстрактным понятиям, для которых язык, очевидно, очень хорошо подходит;тем не менее, трудно довести эти концепции до чего-то знакомого.
Чтобы лучше понять Purescript и частично оспорить Purescript в процедурной задаче, я хочу переписать очень простой скрипт Node, написанный на Typescript.
Сценарий считывает некоторые входные данные из командной строки, вызывает асинхронную функцию, которая гидратирует (на стороне сервера) хранилище редуксов, а затем выводит некоторые данные на консоль.
import { store } from '../server/store'
import { deep, log, red } from '../src/io'
import { isRehydrated } from './isRehydrated'
async function readRecord(dbName: string, tableName: string, recordId: string) {
try {
await isRehydrated()
const result = store.getState().databases[dbName][tableName][recordId]
deep(result)
return 'DONE!'
} catch (e) {
return e
}
}
readRecord(process.argv[2], process.argv[3], process.argv[4]).then(
m => {
log(m)
process.exit()
},
e => {
red(e)
process.exit()
}
)
IsЕсть простой способ переписать вышеупомянутый скрипт в Purescript, используя FFI Purescript для вызова импорта Javascript и синтаксиса do
для обработки асинхронных процедур?