Seven More Languages in Seven Weeks (读书笔记):Elm

本文介绍了Elm编程语言的基础概念,包括类型系统、代数数据类型、记录使用、函数定义及模式匹配等内容,并探讨了信号的概念及其在游戏开发中的应用。

Elm

  1. Day 1
    1. > [1, "2"] //强类型,要求数组内元素必须是同一个类型?
    2. Building Algebraic Data Types:> type Color = Black | White //Haskell语法?
      1. type List = Nil | Cons Int List
      2. type List a = Empty | Cons a (List a)
    3. Using Records
      1. > blackQueen = {color=Black, piece=Queen}
      2. > .color blackQueen //这是学习的Clojure?
    4. 函数
      1. > add x y = x + y
      2. > anonymousInc = \x -> x + 1
      3. > 5 |> anonymousInc |> double //这是学习的Elixir?
        1. > double <| anonymousInc <| 5
    5. 模式匹配
      1. 简化函数定义:> first (head::tail) = head
  2. Day 2
    1. 信号:A signal represents I/O as a value that varies over time(stream?Rx Observable?)
      1. main = Signal.map show Mouse.position
      2. count signal = Signal.foldp (\_ n -> n + 1) 0 signal
    2. 组合信号
      1. clickPosition = Signal.sampleOn Mouse.clicks Mouse.position //当clicks更新时采样position
  3. Day 3
    1. games/skeleton.elm
      1. delta = inSeconds <~ fps n
      2. input = sampleOn delta (...)
      3. main = map display gameState
      4. gameState = foldp stepGame initialGameState input

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值