[問題] Julia函數可能有解也可能沒有的情況

作者: cybermeow (我有一隻貓)   2017-10-20 05:08:34
我平常喜歡的程式語言很多在臺灣可能都偏冷
自然PTT這裡也沒有專版
其實這樣應該直接去StackOverflow啦
但畢竟有個programming版擺在這裡還是來看看
最近開始接觸Julia
雖然跟Matlab和R一樣index從1開始令人受不了
但感覺還算是一個蠻帥的語言
動態卻有一套不錯複雜的type system. 還有multiple dispatch都挺讓人驚艷的
不過由於蠻新的網路上資源相較少
我看到doc有提到說一個函數要盡量回傳相同的type
我想請問像是假設我現在要有一個函數來解決一些constraint的feasibility的問題 (例
如LP
有feasible的點就回傳
不然回傳確定infeasible或者技術問題無法判斷
這時候通常會怎麼做?
1. 除了確定feasible都throw exeption
2. 像一般沒在管type的language一樣有時回傳vector有時回傳string
3. 我個人超想用Haskell的Either 但這應該不是Julia解決問題的方式
4. 算是類似上面吧 用個enum(variant)的type來解決 尤其不同的情況分別是一個分支
但顯然Julia不直接支援代表這應該也不是Julia的解決方式
5. 類似C同樣回傳vector但一些特殊的值代表不同的意思 我看一下簡單的預定義函數就
是用類似的方法 像是找東西找不到回傳index 0之類的 但是在情況複雜化時感覺會很麻

6. 回傳一個Symbol和Nullable{AbstractVector{<:Real}}的couple之類的
我目前是直接用2不過比起string回傳symbol 雖然好像沒啥差
Julia由於網路資源不多常常都不知道怎樣是比較好的practice
像是什麼時候函數參數要給type比較好 怎樣給比較適合
甚至連naming convention都有點複雜 (要不要_之類的
然後第一次在這個版發文 最喜歡的語言是OCaml
雖然寫到一半的tuto被冷凍一段時間了
然後PLT比這邊更冷
雖然PTT本來性質就不太偏這種東西
請多多指教這樣

Links booklink

Contact Us: admin [ a t ] ucptt.com