Infix operator với type trong scala
Scala
50
White

huydx viết ngày 22/03/2016

(Bài viết hơi khó hiểu, dành cho bạn nào có hứng thú với type programming trong scala với các thư viện như shapeless chẳng hạn)
Thông thường với method trong scala thì bạn có thể dùng theo kiểu . hoặc là theo kiểu infix. Mình có ví dụ nhỏ sau đây:

object Foo {
  def bar(s: String) = println(s)
}

Foo.bar("hello") // thông thường
Foo bar "hello"  // infix 

Với một cách suy nghĩ hoàn toàn tương tự chúng ta có thể dùng infix notation cho type programming!

trait Foo[A, B]

type Test1 = Foo[Int, String] // thông thường
type Test2 = Int Foo String   // infix

Chắc bạn nào chưa quen với type programming thì sẽ wtf, cơ mà bạn chỉ cần hiểu trong type programming thì

A B C tương đương với  A[B,C]

hay là Foo không chỉ là type mà còn là phép toán với type.

Sử dụng infix khi chúng ta có những type mang ý nghĩa hơn, ví dụ như nhìn vào type :: (hàm ý là append) trong shapeless thì chúng ta sẽ thấy dễ hiểu hơn

trait ::[A, B]

type Test3 = ::[Int, String]
type Test4 = Int :: String

Tham khảo
http://gigiigig.github.io/tlp-step-by-step/infix-operator.html

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

huydx

118 bài viết.
1052 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
164 15
Introduction (Link) là một cuộc thi ở Nhật, và cũng chỉ có riêng ở Nhật. Đây là một cuộc thi khá đặc trưng bởi sự thú vị của cách thi của nó, những...
huydx viết 2 năm trước
164 15
White
149 15
Một ngày đẹp trời, bạn quyết định viết một dịch vụ web dự định sẽ làm thay đổi cả thế giới. Dịch vụ của bạn sẽ kết nối tất cả các thiết bị di động ...
huydx viết 2 tháng trước
149 15
White
133 15
Happy programmer là gì nhỉ, chắc ai đọc xong title của bài post này cũng không hiểu ý mình định nói đến là gì :D. Đầu tiên với cá nhân mình thì hap...
huydx viết hơn 3 năm trước
133 15
Bài viết liên quan
White
10 0
Kí tự Regex cơ bản Về cơ bản thì các sử lý matching của scala.util.matching.Regex sẽ được "phó thác" (delegate) cho java Regex. Bạn có thể tạo một ...
huydx viết hơn 3 năm trước
10 0
White
7 1
Trong scala kí tự _ được dùng với khá nhiều mục đích .. không liên quan đến nhau. Tạm note lại cái đã khi nào có time sẽ quay lại viết cẩn thận sa...
huydx viết hơn 3 năm trước
7 1
White
4 0
FSM (Finite State Machine) là design pattern được dùng nhiều khi viết game. Cốt lõi của FSM là: State(S) x Event(E) Actions(A), State(S') Có ngh...
Ngoc Dao viết hơn 2 năm trước
4 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
118 bài viết.
1052 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!