Một thuật ngữ phức tạp, không có giải thích tốt từ một tìm kiếm google đơn giản ... có bất kỳ dân gian theo định hướng học thuật nào có thể giải thích điều này không?Tham số quan hệ là gì?
Trả lời
Tham số quan hệ dường như là thuộc tính mà một hàm được trừu tượng hóa trên các loại (giống như một generic trong Java) có thể có. Nếu nó có thuộc tính này, nó có nghĩa là nó không bao giờ kiểm tra đối số kiểu của nó hoặc giải mã nó/sử dụng nó theo một cách đặc biệt nào đó. Ví dụ, chức năng "id hoặc inc" ở đây không phải là relationally tham số:
public class Hey<T>
{
public T idOrInc(T var)
{
if (var instanceof Integer)
return (T)(new Integer(((Integer)var).intValue()+1));
return var;
}
public static void main(String[] args) {
Hey<Integer> h = new Hey<Integer>();
System.out.println(h.idOrInc(new Integer(10)));
Hey<Double> h2 = new Hey<Double>();
System.out.println(h2.idOrInc(new Double(10)));
}
}
Đầu ra là:
$ java Hey
11
10.0
Được rồi, chỉ cần đi để đánh bạo đoán COMPLETE đây, dựa trên này
http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=4276578
tôi muốn nói đó là một đại diện toán học của đa hình tham số (generics).
Cả hai câu trả lời hầu hết là đúng. Tôi sẽ nói rằng tham số là một tài sản có thể có của đa hình. Và đa hình là tham số nếu các thuật ngữ đa hình hoạt động giống nhau trong tất cả các instantiations. Để "cư xử giống nhau" là một thuật ngữ mơ hồ, trực quan. Reletricity quan hệ đã được giới thiệu bởi John Reynolds như là một chính thức toán học này. Nó nói rằng các điều khoản đa hình bảo toàn tất cả các mối quan hệ, mà trực giác buộc nó hoạt động như nhau:
Hãy xem xét f: một danh sách -> một danh sách. Nếu chúng ta có mối quan hệ a ~ 1, b ~ 2, c ~ 3, ..., thì chúng ta có thể nâng nó lên danh sách và ví dụ: [a, d, b, c] ~ [1, 4, 2, 3]
Bây giờ, nếu f ([a, d, b, c]) = [c, b, d, a] và f giữ mối quan hệ, rồi f ([1, 4, 2, 3]) = [3, 2, 4, 1]. Nói cách khác, nếu f đảo ngược danh sách các chuỗi, nó cũng đảo ngược danh sách các số.
Vì vậy, các hàm đa hình tham số liên quan không thể "kiểm tra đối số kiểu", trong đó chúng không thể thay đổi hành vi của chúng dựa trên loại.
- 1. Chủ sở hữu mối quan hệ nghĩa là gì trong mối quan hệ hai chiều?
- 2. Sự khác biệt giữa Cơ sở dữ liệu Quan hệ và Không Quan hệ là gì?
- 3. 3 dấu chấm trong tham số là gì?/Tham số biến số (...) là gì?
- 4. Mối quan hệ giữa WIC và GDI + là gì?
- 5. Quan hệ giữa Iterable và Iterator là gì?
- 6. mối quan hệ giữa masksToBounds và angleRadius là gì?
- 7. Quan hệ giữa ContentPane và JPanel là gì?
- 8. Mối quan hệ giữa Số và Function.prototype trong javascript là gì?
- 9. Số thế hệ inode là gì?
- 10. Mối quan hệ của CloseWindow và WM_CLOSE là gì
- 11. Mối quan hệ giữa Hành khách và Capistrano là gì?
- 12. Quan hệ C-i và tab trong Emacs là gì?
- 13. Quan hệ giữa Xtext và ANTLR là gì?
- 14. mối quan hệ giữa GC, Finalize() và Dispose là gì?
- 15. Khung bản đồ đối tượng-quan hệ là gì?
- 16. Mối quan hệ giữa OSGi và Dependency Injection là gì
- 17. Mối quan hệ giữa AppDelegate, RootViewController và UIApplication là gì?
- 18. Mối quan hệ giữa ghc-pkg và cabal là gì?
- 19. Mối quan hệ giữa "đống" và "đống" là gì?
- 20. Tham chiếu tuần hoàn trong mối quan hệ nhiều chiều đến nhiều mối quan hệ
- 21. Tham số hạt giống MurmurHash3 là gì?
- 22. mysqli_poll() - tham số thứ ba là gì?
- 23. Lọc theo số quan hệ trong SQLAlchemy
- 24. Mối quan hệ giữa hệ điều hành Linux và hạt nhân là gì?
- 25. XOauth và mối quan hệ của nó với OAuth là gì?
- 26. Noah Richards là ai, và mối quan hệ của anh với VS2010 là gì?
- 27. Mối quan hệ giữa mẫu C++ và kiểu gõ vịt là gì?
- 28. Nhiều mối quan hệ tự tham chiếu trong SQLAlchemy
- 29. SQLAlchemy - order_by về mối quan hệ cho bảng tham gia
- 30. SQL tham gia hai bảng không có khóa/quan hệ