[表示 : 全て 最新50 1-99 2ch.scのread.cgiへ]
Update time : 11/15 23:18 / Filesize : 7 KB / Number-of Response : 28
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【純粋関数型AltJS】PureScript



1 名前:デフォルトの名無しさん mailto:sage [2020/03/27(金) 23:08:17.93 ID:adWh10vX.net]
Haskellの直系の子孫であり、JavaScriptを主なコンパイル対象とする純粋関数型AltJS PureScript について語るスレです。

PureScript公式サイト
https://www.purescript.org/

言語リファレンス
https://github.com/purescript/documentation/blob/master/language/README.md

その他有用なラーニングリソース
https://github.com/JordanMartinez/purescript-jordans-reference
https://github.com/justinwoo/purescript-resources/blob/master/docs/index.rst
https://discourse.purescript.org/t/recommended-tooling-for-purescript-applications-in-2019/948

22 名前:デフォルトの名無しさん mailto:sage [2023/09/16(土) 18:48:48.85 ID:YSu5R3en.net]
実行時エラー XMLHttpRequest is not definedはでるがコンパイルは出来た

module Main where

import Prelude

import Effect(Effect)
import Effect.Aff
import Effect.Console (log)
import Effect.Class(liftEffect)
import Data.Either
import Halogen.Aff.Util(runHalogenAff)
import Affjax(Response,printError)
import Affjax.Web as AX
import Affjax.ResponseFormat as AXRF
import Affjax(Error)

main :: Effect Unit
main = runHalogenAff $ do
fb <- AX.get AXRF.string "https://api.github.com/users/test"
case fb of
Left err -> liftEffect $ do
log $ printError err
Right x -> liftEffect $ do
log $ x.body

あと、この~>という記号はどういう意味か分かる人いますか
joinFiber :: Fiber ~> Aff

23 名前:デフォルトの名無しさん mailto:sage [2023/09/17(日) 03:36:47.44 ID:2thFGrAB.net]
>>22
自然変換
https://pursuit.purescript.org/packages/purescript-prelude/6.0.1/docs/Data.NaturalTransformation#t:type%20(~%3E)

24 名前:デフォルトの名無しさん mailto:sage [2023/09/17(日) 09:14:10.06 ID:ucaTRy+v.net]
>>23 ありがとうございます
(~>)などでpursuitで検索しても出ないので助かります

joinFiber :: Fiber ~> Affは
joinFiber :: forall (a :: Type). Fiber a -> Aff a
ですね
そしてFiberもAffもFunctorのインスタンスになってました

ttps://zenn.dev/funnycat/articles/c871fef434c36c
ここのサンプルが軒並み動かなくなってるけど
昔はAffにEffectを混ぜて使えたのかな
例えば
import Prelude
import Effect(Effect)
import Effect.Aff
import Effect.Console(log)
import Data.Either

main :: Effect Unit
main = launchAff_ do
a <- makeAff \callback -> do
log "関数が呼ばれたよ"
callback (Right "Done!")
pure nonCanceler
log a
log aがEffectモナドで動いてて他の行がAffモナドで動いてるのでエラーになってる
logの前にliftEffectをつければ動くので一応補完しながら読んでます

25 名前:デフォルトの名無しさん mailto:sage [2023/09/18(月) 10:41:43.01 ID:UmWRU5gb.net]
halogen難しいね
次の関数とかどんな関数か想像もつかない
_1って何ですか。普通のaとかと同じもの?

slot :: forall query action input output slots m label slot _1. Cons label (Slot query output slot) _1 slots => IsSymbol label => Ord slot => Proxy label -> slot -> Component query input output m -> input -> (output -> action) -> ComponentHTML action slots m

26 名前:デフォルトの名無しさん [2023/10/04(水) 20:54:14.40 ID:raXXa6I6.net]
>>25
Halogenは、ある程度PureScriptに慣れるまではシグネチャおまじないだと思ってあんまり気にしない方がいいかもね

27 名前:デフォルトの名無しさん [2023/10/05(木) 17:14:25.83 ID:qkLTqCla.net]
>>24

記事のは Effect.Class.Console の log を使ってるはず(Effect.Consoleのlog を liftEffect したもの)






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<7KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef