V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
amlee
V2EX  ›  分享发现

学了一周 haskell 的感受

  •  
  •   amlee · 2022-11-26 15:59:52 +08:00 · 2629 次点击
    这是一个创建于 729 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我声明了一个类型
    我把这个类型变成了 Functor, Nice!
    我把这个 Functor 变成了 Applicative, Nice!
    我把这个 Applicative 变成 Monad, Nice!
    哎,类型检查没报错唉,Nice!
    哎,我写了啥来着? Fuck!
    哎,我要干啥来着? Fuck!

    用这玩意写代码的都是神仙,他奶奶的邱奇就是大罗金仙
    12 条回复    2022-11-27 18:23:48 +08:00
    cmdOptionKana
        1
    cmdOptionKana  
       2022-11-26 16:02:29 +08:00
    我写纯函数式的感受也差不多, 写的时候很爽, 但后续维护就很头大, 看别人写的代码也很困难, 因为太灵活了.
    xtreme1
        2
    xtreme1  
       2022-11-26 16:09:03 +08:00
    也不一定非要用它写什么东西, 很多 PL 的文章都默认你会 Haskell, 学了还是有用的.
    amlee
        3
    amlee  
    OP
       2022-11-26 16:16:38 +08:00
    @xtreme1 我倒不是想用 haskell 写什么,只是越来越多的语言或多或少的引入了些 FP 的思想进去,我就想了解下这玩意到底是什么。
    makelove
        4
    makelove  
       2022-11-26 16:35:47 +08:00
    @amlee 加少量 fp 思想挺好的,但我只接受象 js 界那样加点料的程度,如果真全面纯 fp 化就受不了了
    thedrwu
        5
    thedrwu  
       2022-11-26 17:22:33 +08:00 via Android
    2008 年那会儿读了 real world haskell 于是用了几年,感觉跟现在的 rust 一样,很多优化的潜力没有发觉出来,monad transformer 慢得不能用
    thedrwu
        6
    thedrwu  
       2022-11-26 17:22:51 +08:00 via Android
    发掘
    luozic
        7
    luozic  
       2022-11-26 18:19:29 +08:00
    可以把代码看看否?
    luozic
        8
    luozic  
       2022-11-26 18:20:29 +08:00
    如果用类似 typescript +any 那种用法,啥类型检测也没用啊。
    amlee
        9
    amlee  
    OP
       2022-11-26 18:35:43 +08:00
    luozic
        10
    luozic  
       2022-11-26 18:51:24 +08:00
    newtype ST a = Trans (State -> (a, State))

    rev :: Num a => ST a
    rev = Trans (\s -> if s == Yes then (0, No) else (1, Yes))
    ALXG
        11
    ALXG  
       2022-11-27 17:24:35 +08:00
    你看到问题以后始终处于迭代解决的动机就好了.
    Hawthorne
        12
    Hawthorne  
       2022-11-27 18:23:48 +08:00
    学院派和田野派、工程派的分野还是很明显的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1386 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 17:11 · PVG 01:11 · LAX 09:11 · JFK 12:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.