[问题] 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