PureScriptのFFI
実装はJSで型だけpsで定義されているpackageも割といっぱいあるmrsekut.icon
かんたんな例
code:./readline.js
"use strict";
var readlineSync = require('readline-sync')
exports.readLine = function () {
return readlineSync.question('user> ')
}
code:./Readline.purs(hs)
module Readline where
import Effect (Effect)
foreign import readLine :: Effect String
expors.hogeの部分と、foreign import hogeの部分の名前を合わせないとコンパイルエラーになるmrsekut.icon
新たなkindを定義する
code:purs(hs)
foreign import data Frob :: Type
foreign import data UseState :: Type -> Type -> Type
https://gyazo.com/2e77c0b5859fb7e03eabddb7eb1e3d33
実際のsyntax hilight
型の付け方
例えば間違った型を付けることもできるのか
できる.
tsの型定義と同じ感じ
手順
ディレクトリ
js側のexport
purs側のimport
カリー化
jsの多引数関数をどうやってカリー化してpursの世界に持ってくるのか
この記事はめちゃくちゃ古いので参考程度に
JSのnullの扱い
この記事はめちゃくちゃ古いので参考程度に
副作用の扱い
この記事はめちゃくちゃ古いので参考程度に
JSのthisの扱い
この記事はめちゃくちゃ古いので参考程度に
関連
TSの型定義ファイルをpursに使う