我正在从终端运行ghci.
在我的源文件中,我定义了
factorial :: Int -> Int
factorial n = product [1 .. n]
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我得到了结果
factorial 13 = 1932053504
product [1 .. 13] = 6227020800
Run Code Online (Sandbox Code Playgroud)
对于任何小于13的数字,结果是正确的.但是,对于大于或等于12的任何数字,两个结果不一致.
另外如果我定义这个函数递归:
factorial' :: Int -> Int
factorial' 0 = 1
factorial' (n + 1) = (n + 1) * factorial' n
Run Code Online (Sandbox Code Playgroud)
我还是得到的
factorial' 13 = 1932053504
Run Code Online (Sandbox Code Playgroud)
如果您了解这里发生的事情,那将非常有帮助.谢谢
我刚刚开始使用ASM(NASM),需要一些关于以下代码段的帮助.我没有错误/警告,它只是没有输出任何东西.我期待的是它获得时间(13),然后打印出(4),然后退出(1).另外,有没有人知道一些好的(最好是NASM特定的)ASM教程?
section .bss
time: resb 255
section .text
global _start
_start:
mov eax, 13
int 0x80
mov eax, time
mov edx, 255
mov ecx, time
mov ebx, 1
mov eax, 4
int 0x80
mov eax, 1
int 0x80
Run Code Online (Sandbox Code Playgroud)