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
【純粋関数型AltJS】PureScript
2020/03/27(金) 23:08:17.93ID:adWh10vX
2023/09/12(火) 16:34:57.19ID:FooNA5X7
今日入門。過疎ってるけどだれかいると信じてあげます
今日はspago initしてrunを動かすところまでやりました
linuxのntfs-3g上ではfatal: destination path '.' already exists and is not an empty directory.
のようなエラーが多数でて動かないので気をつけてください
それを解明するまでにかなり時間がかかりました
今日はspago initしてrunを動かすところまでやりました
linuxのntfs-3g上ではfatal: destination path '.' already exists and is not an empty directory.
のようなエラーが多数でて動かないので気をつけてください
それを解明するまでにかなり時間がかかりました
2023/09/16(土) 10:58:20.89ID:YSu5R3en
今halogen guideを読んでる途中
型がよくわからないので小さいサンプルを作ろうとしたのですが
これすら型エラーで動かせない
型エラー対策に便利なhaskellのerror :: [Char] -> aがないので別のところでも苦戦中
module Main where
import Prelude
import Affjax.Web as AX
import Affjax.ResponseFormat as AXRF
import Effect (Effect)
import Effect.Aff.Class (class MonadAff)
import Halogen as H
import Effect.Console(log)
import Effect.Class(liftEffect)
main :: Effect Unit
main = do
response <- H.liftAff $ AX.get AXRF.string ("https://api.github.com/users/test")
log $ show response
型がよくわからないので小さいサンプルを作ろうとしたのですが
これすら型エラーで動かせない
型エラー対策に便利なhaskellのerror :: [Char] -> aがないので別のところでも苦戦中
module Main where
import Prelude
import Affjax.Web as AX
import Affjax.ResponseFormat as AXRF
import Effect (Effect)
import Effect.Aff.Class (class MonadAff)
import Halogen as H
import Effect.Console(log)
import Effect.Class(liftEffect)
main :: Effect Unit
main = do
response <- H.liftAff $ AX.get AXRF.string ("https://api.github.com/users/test")
log $ show response
2023/09/16(土) 18:48:48.85ID:YSu5R3en
実行時エラー 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
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
2023/09/17(日) 03:36:47.44ID:2thFGrAB
2023/09/17(日) 09:14:10.06ID:ucaTRy+v
>>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をつければ動くので一応補完しながら読んでます
(~>)などで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をつければ動くので一応補完しながら読んでます
2023/09/18(月) 10:41:43.01ID:UmWRU5gb
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
次の関数とかどんな関数か想像もつかない
_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.40ID:raXXa6I6 >>25
Halogenは、ある程度PureScriptに慣れるまではシグネチャおまじないだと思ってあんまり気にしない方がいいかもね
Halogenは、ある程度PureScriptに慣れるまではシグネチャおまじないだと思ってあんまり気にしない方がいいかもね
27デフォルトの名無しさん
2023/10/05(木) 17:14:25.83ID:qkLTqClaレスを投稿する
ニュース
- 【高市首相】「日本人が日本各地を旅行するのも大切」 中国からの渡航自粛巡り ★4 [ぐれ★]
- ルンバの米アイロボットCEO、倒産原因は「技術面で中国勢に4年遅れ」 [蚤の市★]
- 拡大中「お正月は休業します」百貨店やスーパー、飲食業界でも [ぐれ★]
- 【本】ホリエモンが「タバコの価格を3倍以上に」「喫煙にメリットなど一つもない」と訴えるワケ [少考さん★]
- 統合中学の校名案「桜花」 特攻機名と重なり波紋 福岡・大牟田……「生徒が純真に考えた」と賛成意見も市民団体などが疑問の声 [少考さん★]
- 【野球】WBC、録画放送含め地上波中継なし (ネットフリックス) ★4 [阿弥陀ヶ峰★] [阿弥陀ヶ峰★]
- フィンランド首相「日中韓それぞれに謝罪します。人種差別はあってはならない…」普通の日本人「日本人だけ謝罪した!!中韓ザマァwww」 [624898991]
- サウナ死の松田夫妻、最後の手段としてサウナストーンをタオルで包みドアガラスを割ろうとしたか… [271912485]
- 【悲報】ホリエモン「タバコの価格を3倍以上にして税収を禁煙外来無料化・成功者報奨金にあてろ [733893279]
- うんこの最長記録更新した
- ずっと真夜中ならいいのに。←夜勤の俺への配慮ゼロ
- 【速報】フィンランド人、日本人に続々と宣戦布告www [793117252]
