我在学习递归的时候遇到了这个问题:
FORTRAN implementations do not permit recursion because
a. they use static allocation for variables
b. they use dynamic allocation for variables
c. stacks are not available on all machines
d. it is not possible to implement recursion on all machines.
我发现答案是(a)
但我想知道一种编程语言支持递归应该
好吧,昨天我有个同事走进我的办公室,问我一个关于Fortran密码的问题,他必须和他一起工作。
基本上,他使用的代码有一个长的多维数组,以及一个子例程,它只期望这个长的多维数组作为参数。
但是,调用该子例程的代码只传递数组的第一个元素。但代码有效。所以他问我这怎么可能。
我还没有看到他的特定代码,但是下面是我如何理解这个问题的一个例子(而且它是有效的!)
subroutine print_array(a)
implicit none
integer :: a(10)
write(*, *) a
end subroutine print_array
program pa
我是哈斯克尔的初学者,我一直在关注电子书
我正在学习如何使用Lambda函数来实现闭包,但是我看不到以下代码的不同之处:
genIfEven :: Integral p => p -> (p -> p) -> p
genIfEven x = (\f -> isEven f x)
genIfEven2 :: Integral p => (p -> p) -> p -> p
genIfEven2 f x = isEven f x
如果有人能解释这里的确切区别,那就太好了。