Language for Chess Position Evaluation (experimental) [closed]

My aim is to, via pattern analysis and statistics, (as well as piece mobility and position) build a chess position evaluation analyzer (rather than simply going brute force ply-searching).

Id like to hear some thoughts a language that will be interesting/fun/challenging to learn and reason with. Ideally the language would have be well suited for:

  1. Statistical Analysis
  2. Pattern Analysis
  3. Native Array and Vector Operations
  4. Native Mathematical Functions

Note:

  1. I have no need for a GUI, and may not even get to the point of a ‘move engine’ but simply stop at a position evaluation engine
  2. I am not interested in speed.
  3. I am personally most comfortable with Python but I might be interested in trying something else. (though feel free to suggest this if you think it fits).
  4. I am particularly curious about how good a fit a functional language would be in this context.

5

When I read your requirements, I immediately thought of using R, like @JimmyHoffa. In addition, I have done a great deal of programming in R (and Python). I think R is ideal for this kind of work because of:

  • The large amount of statistical tools readily available. Think of Princple Component Analysis (PCA), all kinds of optimization techniques, etc. And if it is not already available there are many, many more packages available on the Comprehensive R Archive Network (CRAN), there are more than 3000 packages there. A nice way to explore these packages theme wise (e.g. econometrics, spatial data analysis, etc) is to look at the different Task Views that are available here.
  • It is open source, and freely available.
  • A large and active community which you can use to get answers to specific questions. For example, the R-help mailing list, or the [r] tag on StackOverflow.
  • All the data structures you requested (floats, matrices, arrays, tables, etc).
  • A powerful, functionally oriented, syntax that suits the data oriented nature of data analysis well. Explicit for loops are rarely needed (although they exist in the language), instead you use apply style loops. This means that you apply a function over a datastructure. For example, you can apply the mean function over the rows of a matrix to get the row means:

    apply(matrix, 2, mean) # where 2 is the dimension over which to apply
    

    this shares some similarities with list comprehensions in python.

  • Easy incorporation of C++, Fortran etc code for when you want to replace a performance critical section by compiled code.

1

I think your problem scope falls exactly into the purpose of R, though I have never written or worked with R. I have heard good things about it, and would strongly suggest you start looking into it.

http://www.r-project.org/

Coming from python this will be a large shift I’m betting since it’s functional, but I don’t know how pure it is so it may not be too bad if it’s got good multi-paradigm facilities.

If this doesn’t come out to be in your opinion elegant, I would then suggest two other languages:

  • The one I find to be most elegant of any I’ve ever seen, Haskell, which is declarative (which sounds like what you’re asking for in the way you frame your approach) and good for processing data sets.

  • And another one which facilitates declarative programming while having meta-programming facilities that has been shown to be invaluable in writing systems that analyze things with a bit more intelligence, LISP(or Scheme).

4

I’d suggest python with numpy and scipy. Since you are already familiar with python, and numpy and scipy give you the array and math functions you need.

Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa Dịch vụ tổ chức sự kiện 5 sao Thông tin về chúng tôi Dịch vụ sinh nhật bé trai Dịch vụ sinh nhật bé gái Sự kiện trọn gói Các tiết mục giải trí Dịch vụ bổ trợ Tiệc cưới sang trọng Dịch vụ khai trương Tư vấn tổ chức sự kiện Hình ảnh sự kiện Cập nhật tin tức Liên hệ ngay Thuê chú hề chuyên nghiệp Tiệc tất niên cho công ty Trang trí tiệc cuối năm Tiệc tất niên độc đáo Sinh nhật bé Hải Đăng Sinh nhật đáng yêu bé Khánh Vân Sinh nhật sang trọng Bích Ngân Tiệc sinh nhật bé Thanh Trang Dịch vụ ông già Noel Xiếc thú vui nhộn Biểu diễn xiếc quay đĩa Dịch vụ tổ chức tiệc uy tín Khám phá dịch vụ của chúng tôi Tiệc sinh nhật cho bé trai Trang trí tiệc cho bé gái Gói sự kiện chuyên nghiệp Chương trình giải trí hấp dẫn Dịch vụ hỗ trợ sự kiện Trang trí tiệc cưới đẹp Khởi đầu thành công với khai trương Chuyên gia tư vấn sự kiện Xem ảnh các sự kiện đẹp Tin mới về sự kiện Kết nối với đội ngũ chuyên gia Chú hề vui nhộn cho tiệc sinh nhật Ý tưởng tiệc cuối năm Tất niên độc đáo Trang trí tiệc hiện đại Tổ chức sinh nhật cho Hải Đăng Sinh nhật độc quyền Khánh Vân Phong cách tiệc Bích Ngân Trang trí tiệc bé Thanh Trang Thuê dịch vụ ông già Noel chuyên nghiệp Xem xiếc khỉ đặc sắc Xiếc quay đĩa thú vị
Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa
Thiết kế website Thiết kế website Thiết kế website Cách kháng tài khoản quảng cáo Mua bán Fanpage Facebook Dịch vụ SEO Tổ chức sinh nhật