4
A
回答
4
4
一個辦法是學習FSI的來源可以從問題的評論中提到的幾個存儲庫中獲得,然後以某種方式將其功能暴露給您的應用程序通過修改來源(改變能見度等)。這種方式顯然是陡峭而痛苦的。
幸運的是,這方面的一些工作已經按照FSharp.Compiler.Service的方法完成了,所以另一種方式可能是將FSI作爲標準化服務嵌入到您的應用程序中。以下presentation由Don Syme和Tomas Petricek在NYC 2013 SkillMatters日期間提供了有關嵌入FSI作爲服務的詳細信息。
呈現提供了一個鏈接Microsoft.FSharp.Compiler.Interactive.Shell
命名空間內(實驗)實施FSI服務,這樣的嵌入可以是如在下面的代碼段一樣簡單:
open Microsoft.FSharp.Compiler.Interactive.Shell
.....
let fsi = FsiEvaluationSession([| "fsi.exe"; "--noninteractive"|], inStream, outStream, errStream)
.....
match fsi.EvalExpression(codeLines) with
| Some value -> value.ReflectionValue
| None -> raise (System.ArgumentException("fsi cannot evaluate expression"))
+0
此代碼尚未將其添加到FSharp.Compiler.Service(AFAIK),但它在我的本地分支中可用:https://github.com/tpetricek/fsharp/tree/fs-extend。請參閱InteractiveService示例:https://github.com/tpetricek/fsharp/tree/fs-extend/samples/InteractiveService –
相關問題
- 1. F#交互式System.OutOfMemoryException
- 2. 是否可以僅使用開放源代碼開發Flash應用程序?
- 3. JavaFx - 交互式排序應用程序
- 4. 是否有任何與代碼交互的方式。交互式控制檯
- 5. Appium for iOS應用程序是否需要應用程序的源代碼?
- 6. 交互式單頁應用程序
- 7. 交互式android應用程序
- 8. iOS交互式地圖應用程序?
- 9. Python交互式CLI應用程序?
- 10. F#交互式shell(fsi)教程?
- 11. F#交互式終止
- 12. Appharbor上託管的應用程序的源代碼是否可公開?
- 13. 是否可以查看iphones應用程序源代碼?
- 14. 將代碼發送到F#交互式控制檯
- 15. F#爲什麼我不能使用:? F#交互式操作符?
- 16. 爲應用程序交互創建API
- 17. 與代碼內的外部應用程序交互(Golang)
- 18. 與節點中的應用程序代碼交互REPL
- 19. 如何使用開放源碼Android應用程序代碼
- 20. 是否有用於編程快速C#代碼片段的交互式shell?
- 21. iOS開源繪圖應用程序源代碼
- 22. 交互式Flash替代 - HTML5或本機應用程序?
- 23. 是否可以讓PowerShell與控制檯應用程序交互?
- 24. ClickOnce應用程序是否可以與網頁進行交互
- 25. 如何從交互式shell中訪問調用源代碼
- 26. 開源的交互式地圖
- 27. Groovy是否有源代碼格式化程序?
- 28. 從交互式shell調用d代碼
- 29. 是否可以將交互式元素加載到iOS應用程序中?
- 30. Adobe Flex是否開放源代碼?
是的,這是。它的來源是在GitHub上:https://github.com/fsharp/fsharp/tree/master/src/fsharp/fsi –
不知道爲什麼這會被擱置,我還會問這個問題? – AwkwardCoder
Ramon給出的鏈接的另一種替代方法是[FSharp.Compiler.Service](https://github.com/fsharp/FSharp.Compiler.Service),該方法公開了類似於您的場景中所需的額外功能。 –