任何人都可以解释aspectj this()和target()pointjuts 之间的区别.我尝试在其他地方找到这个,但似乎没有一个明确的答案.谢谢
我想编写一个尾递归函数,将F#中列表中的所有值乘以2.我知道有很多方法可以做到这一点,但我想知道这是否是一个可行的方法.这纯粹是出于教育目的.我意识到有一个内置功能为我做这个.
let multiply m =
let rec innerfunct ax = function
| [] -> printfn "%A" m
| (car::cdr) -> (car <- car*2 innerfunct cdr);
innerfunct m;;
let mutable a = 1::3::4::[]
multiply a
Run Code Online (Sandbox Code Playgroud)
虽然我怀疑他们是唯一的问题但我得到了两个错误.
在我的第二个匹配条件下,此值不可变
和
该表达式是一个函数值,即缺少参数.它的类型是'列表 - >单位.因为我打电话的时候length a.
我对F#相当新,并且意识到我可能没有正确地调用该函数,但我无法弄清楚为什么.这对我来说主要是一种学习经验,因此解释比修复代码更重要.语法显然已关闭,但我可以将*2映射到列表,只需执行等效操作即可
car = car*2 然后调用列表的cdr上的内部函数.