การเรียกใช้ function (function application) ใน Haskell ที่พบได้ใน code ทั่วไป มีอย่างน้อย 3 แบบ

1. f x

(space) เป็น function application operator ของ Haskell, f1 a เทียบเท่ากับ f1(a) ในภาษาอื่นเนื่องจาก function เป็นหน่วยพื้นฐานใน Hasell ไวยากรณ์การใช้งาน function ที่กระชับช่วยให้ code มีสิ่งรบกวนน้อย

2. f $ x

($) :: (a -> b) -> a -> b เป็น binary operator (function ที่มี 2 argument) ที่นิยมใช้เพื่อลดจำนวนวงเล็บ

ตัวอย่าง: code ข้างล่างนี้ให้ผลลัพท์แบบเดียวกัน

3. x # f

(#) :: a -> (a -> b) -> b หรือ ($) กลับด้าน (flip ($)) เป็นไวยากรณ์ที่คล้ายกับของภาษา object-oriented ตัวอย่างการใช้งานพบได้ใน library diagrams สังเกตว่าลำดับ composition กลับด้านกับ (.)


หากต้องการแค่ใช้ code ล่าสุดโดยไม่สนใจประวัติการแก้ไขก่อนหน้านั้น หรือต้องการใช้กับ Continuous Integration (CI) เราสามาถเลือกความลึกของประวัิตได้ ด้วย --depth n

ตัวอย่าง: ความลึกเท่ากับ 1 จะได้ commit ล่าสุดเพียง commit เดียว ด้วยขนาด 14MiB

เทียบกับ full clone: ได้ประวัติตั้งแต่เริ่ม ด้วยขนาด 513Mib

Originally published at wizzup.github.io


Posted on July 29, 2017

There are many ways to use GHC in nix-shell

  • System’s default GHC
  • System’s default GHC with additional libraries
  • Specific version with libraries
  • with shell.nix

Originally published with more details at wizzup.github.io.


เมื่อต้องการแก้ไข commit message

ระดับ 1: แก้ข้อความล่าสุด

ระดับ 2: แก้ข้อความจำนวนน้อยทีละข้อความ

จะมี rebase todo-list ขึ้นมา เลือก reword กับ commit ที่ต้องการแก้ไขแล้วบันทึก จากนั้น git จะเรียก editor ขึ้นมาให้แก้ข้อความเมื่อถึงคิวของ commit นั้น (แก้ใน rebase-todo ไม่ได้ จะถูกโยนทิ้งไป)

Wisut Hantanong

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store