EDIT: Having spent several hours learning this, I don’t think I’m going to find anything that actually will ultimately save me compared to the amount of time and effort to find the right language, suitable bindings, and keeping this environment in the face changes on all of these platforms. I accept the answer that seems most realistic because it would be the best idea for most people. The opinion I use from these conversations and the others that I have is that the only sure way is to use a functional language that can work without external bindings, or one that has bindings supported by a commercial entity such as F #. This is too much work and too little demand, and the state of what is available in the wild reflects this. I hope he changes one day.
I would like to start using a functional language in my software in addition to Objective-C, which is my main language (C can be functional as a binding?). Must be cross-platform, which means Windows, Linux, OSX (x86) and iOS (ARM). What should I use and how can I achieve this?
I plan to migrate to LLVM server and Clang soon for my Objective-C, if that matters.
I do not have any “investment in knowledge” in any functional language, although I have tricked them several times. I study it from scratch, so I want to learn something non-essential, if possible
- The solution should be real , there is a lot of preliminary or prototype work, but ..
- I am using target C, and I really need Cocoa bindings; because a lot of my data uses Cocoa types, so otherwise everything will be useless. Also, Objective-C messaging would prevent me from creating glue code between static C functions and my Objective-C instance objects (this is what Objective-C method calls do inline ..)
- The solution must be safe for static binding (iOS requirement)
Here are examples of what I would like to do:
- Process byte language, e.g. network protocol
- Input: bytes and length and instance of the <call> Objective-C method
- Exit: return to the Objective-C method call, send it cocoa -container arguments
- Make decisions about the best "move" in a board game
- Input: cocoa -saved state data, call Objective-C call
- Exit: maybe change the state data, maybe call an arbitrary Objective-C method, and then return to the Objective-C method call, send it cocoa -container arguments
source share