iT邦幫忙

2023 iThome 鐵人賽

DAY 6
0
Modern Web

使用 Clojure 當個 Full-stack 開發者系列 第 6

[Day 6] 實踐是檢驗真理的唯一標準

  • 分享至 

  • xImage
  •  

實踐什麼呢?那當然就是clojure的程式怎麼跑的嘍

這邊挑幾個當時我進入時比較疑惑的點

  • 所有東西起手式就是括弧,然後operater/function,最後是參數
    藉由官方的圖,最後還有個小測驗

  • 所有都有輸入跟輸出,最後一個()就是外面return,沒有就是nil

  • 有些function只會做 1 件事
    譬如 when,他的描述是 (when test & body)
    那如果你在when想多做事情,外面要多包個do,範例

  • Lazy
    在clojure裡,有時候你會看到return LazySeq,他其實就是沒有馬上執行,先回傳一個東西給你,你要自己展開
    展開的方式其中一種就是doseq
    也就是別的函式先寫yield,你要使用就take/for拿值出來
    參考

  • Threading Macro, i.e. (->, ->>, ...)
    這個就是pipeline,丟到呼叫的下一個參數的最前面或最後面
    |> in elixir

  • immutable
    所有東西都是不可變

  • 我是常用let開發,所以variable的scope就是找到最近的那個定義

  • 思維的轉變,越來越少寫分支(if/else)
    以前在執行function前,會有滿多相關的條件檢查,現在越來越多cond->/case/...的條件組合
    搭配前面提到的immutable,整個寫下來也滿清楚又沒有bug的

  • 沒有 Polymorphism
    所有的函式都是靠個參數數量決定的

其他就是搭配 exercism4clojure 來熟悉上手了

如果有想到其他的就再回頭補充


上一篇
[Day 5] 括弧來啦
下一篇
[Day 7] 堆積木的第一天
系列文
使用 Clojure 當個 Full-stack 開發者30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言