Tôi đang học F # và có một số kinh nghiệm với Python. Tôi thực sự thích trang trí hàm Python; Tôi chỉ tự hỏi nếu chúng ta có bất cứ điều gì tương tự như nó trong F #?Có điều gì tương tự với trình trang trí hàm Python trong ngôn ngữ lập trình F # không?
5
A
Trả lời
9
Không có đường cú pháp cho trang trí hàm trong F #.
Đối với các loại, bạn có thể sử dụng thuộc tính StructuredFormatDisplay
để tùy chỉnh nội dung printf. Dưới đây là một ví dụ từ F# 3.0 Sample Pack:
[<StructuredFormatDisplayAttribute("MyType is {Contents}")>]
type C(elems: int list) =
member x.Contents = elems
let printfnSample() =
printfn "%A" (C [1..4])
// MyType is [1; 2; 3; 4]
Đối với chức năng, bạn có thể dễ dàng bày tỏ Python's decorators sử dụng hàm hợp. Ví dụ, this Python example
def makebold(fn):
def wrapped():
return "<b>" + fn() + "</b>"
return wrapped
def makeitalic(fn):
def wrapped():
return "<i>" + fn() + "</i>"
return wrapped
@makebold
@makeitalic
def hello():
return "hello world"
có thể được dịch sang F # như sau
let makebold fn =
fun() -> "<b>" + fn() + "</b>"
let makeitalic fn =
fun() -> "<i>" + fn() + "</i>"
let hello =
let hello = fun() -> "hello world"
(makebold << makeitalic) hello
Các vấn đề liên quan
- 1. Ngôn ngữ lập trình PHP hoặc ngôn ngữ lập trình?
- 2. Mẹo lập trình với ngôn ngữ/ký tự tiếng Nhật
- 3. Tương đương "lợi nhuận" tương đương với ngôn ngữ lập trình D là gì?
- 4. Tạo ngôn ngữ lập trình với C#
- 5. Ngôn ngữ lập trình Siri
- 6. gVim và nhiều ngôn ngữ lập trình
- 7. ngôn ngữ lập trình không xác định
- 8. C# Ngôn ngữ lập trình
- 9. Tôi nên chọn ngôn ngữ lập trình chức năng nào làm ngôn ngữ lập trình hàm đầu tiên?
- 10. Ngôn ngữ lập trình có nên trực quan không?
- 11. Các ngôn ngữ lập trình chức năng có phù hợp với lập trình đồ họa không?
- 12. Điều đó thực sự có nghĩa là ngôn ngữ lập trình là gì?
- 13. Ngôn ngữ lập trình bí ẩn
- 14. Điều gì có nghĩa là tốt trong ngôn ngữ lập trình?
- 15. Dịch mã byte Java sang các ngôn ngữ lập trình và ngôn ngữ lập trình khác
- 16. Ngôn ngữ lập trình Axum mới này là gì?
- 17. EOF trong ngôn ngữ lập trình C là gì?
- 18. Hỗ trợ ngôn ngữ Dart không đồng bộ/đang chờ kiểu lập trình hoặc tương tự?
- 19. Cách tạo ngôn ngữ lập trình bằng Python
- 20. Ngôn ngữ lập trình nào có trình biên dịch JIT?
- 21. Mảng trong ngôn ngữ lập trình J
- 22. Ngôn ngữ lập trình ngắn gọn nhất là gì?
- 23. Đặt ngôn ngữ Wordpress theo lập trình?
- 24. Có ngôn ngữ lập trình nào hỗ trợ xml không?
- 25. Các vấn đề văn hóa trong ngôn ngữ lập trình
- 26. Làm thế nào tôi có thể thay đổi lập trình argspec của một hàm trong một trình trang trí python?
- 27. Ngôn ngữ lập trình đã nhập
- 28. Điều gì thay thế mẫu MVC trong lập trình hàm?
- 29. Windows: Ngôn ngữ lập trình nào?
- 30. Mục đích của ngôn ngữ lập trình Scala là gì?
Xem thêm [chức năng tương đương với Decorator Pattern?] (Http://stackoverflow.com/questions/7064389/functional tương đương-of-decorator-pattern). – nneonneo