2011-12-29 29 views
6

(Mathematica phiên bản: 8.0.4)Khi sử dụng Internal`Bag và bất kỳ tài liệu chính thức nào?

lst = Names["Internal`*"]; 
Length[lst] 
Pick[lst, StringMatchQ[lst, "*Bag*"]] 

cho

293  
{"Internal`Bag", "Internal`BagLength", "Internal`BagPart", "Internal`StuffBag"} 

Các Mathematica sách hướng dẫn cho lập trình bởi Michael Trott, trang 494 nói về bối cảnh nội

"Nhưng tương tự đến ngữ cảnh Thử nghiệm`, không đảm bảo rằng hành vi và cú pháp của các hàm sẽ vẫn có sẵn trong các phiên bản sau của Mathematica "

Ngoài ra, đây là một đề cập đến Bag chức năng:

Implementing a Quadtree in Mathematica

Nhưng kể từ khi tôi đã nhìn thấy số lượng chuyên gia Mathematica đây đề nghị Internal`Bag chức năng và sử dụng chúng mình, tôi giả định nó sẽ là loại an toàn để sử dụng chúng trong mã thực tế? và nếu có, tôi có câu hỏi sau:

Tôi có thể tìm thấy mô tả chính thức hơn về các chức năng này (API, v.v ..) như thế nào trong trung tâm documen? Không có gì bây giờ về chúng ngay bây giờ

??Internal`Bag 
Internal`Bag 
Attributes[Internal`Bag]={Protected} 

Nếu tôi bắt đầu sử dụng chúng, tôi thấy khó để tìm hiểu về chức năng mới bằng cách chỉ nhìn vào một số ví dụ và thử và sai để xem những gì họ làm là. Tôi tự hỏi, nếu ai đó ở đây có thể có một tài liệu hoàn chỉnh hơn và tự chứa về việc sử dụng các, mô tả các API và nhiều hơn những gì được ra khỏi đó đã có hoặc một liên kết đến nơi đó.

+9

?? Các mô tả chính thức * là * cái gọi là "Trung tâm Tài liệu" (aka Trợ giúp). Nếu không có gì ở đó, thì không có nơi nào khác có cấu trúc. Nó đã từng xảy ra trước đây: FrontEnd Tokens được giới thiệu xung quanh Mathematica 3, nhưng chỉ một phần được ghi lại sau. Vì vậy, chỉ cần chờ đợi một thập kỷ hoặc lâu hơn và WRI có thể sẽ ghi lại nó. Cho đến lúc đó bạn phải dựa vào các nhà phát triển loại như Dan Lichtblau et. al. để chiếu sáng vào bóng tối. –

+3

Tôi đã phạm tội giới thiệu các chức năng không có giấy tờ mà không trình bày cảnh báo về việc sử dụng chúng.Thật khó để không được vui mừng về "thủ thuật" mới nhất mà tôi học và bắt đầu sử dụng nó ngay lập tức, nhưng nó có thể là không khôn ngoan, và tôi không nên khuyến khích người khác theo thực hành này. Đáng buồn thay, một số tính năng và chức năng thú vị thuộc thể loại này. Tôi hy vọng sẽ có từ chính thức về các chức năng như '* Túi *' sớm thôi. –

+9

Tôi nghi ngờ sẽ có bất cứ điều gì chính thức về những người. Nhưng họ đã có mặt trong ít nhất một chục năm, và họ sẽ không biến mất. –

Trả lời

0

Ngữ cảnh Internal chính xác là tên của nó: Có nghĩa là sử dụng nội bộ bởi các nhà phát triển Wolfram.

Điều này có nghĩa, trong số những thứ khác, những điều sau đây giữ về bất cứ điều gì bạn có thể thấy trong đó:

  • Bạn rất có thể sẽ không thể tìm thấy bất kỳ tài liệu chính thức nào về nó, vì nó không có nghĩa là để được sử dụng bởi công chúng.
  • Không nhất thiết phải mạnh mẽ về các đối số không hợp lệ. (Crashing hạt nhân có thể dễ dàng xảy ra trên một số người trong số họ.)
  • API có thể thay đổi mà không cần thông báo.
  • Chức năng có thể biến mất hoàn toàn mà không cần thông báo.

Bây giờ, trong thực tế, một số trong số đó có thể ổn định một cách hợp lý, nhưng tôi khuyên bạn nên tránh xa chúng. Sử dụng các API không có giấy tờ có thể dễ dàng khiến bạn bị đau đớn và bất ngờ khó chịu trong tương lai.

Các vấn đề liên quan