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

116 bài viết.
940 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
148 14
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 gần 2 năm trước
148 14
White
118 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
118 15
White
95 10
(Ảnh) Mở đầu Chắc nhiều bạn đã nghe đến khái niệm oauth. Về cơ bản thì oauth là một phương thức chứng thực, mà nhờ đó một web service hay một ap...
huydx viết gần 3 năm trước
95 10
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 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 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'}}
116 bài viết.
940 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á!