小编tgt*_*rmr的帖子

Common Lisp:未定义的函数k

我是Common Lisp的新手.我尝试建立自己的运营商功能.在第一个函数中,我尝试将一个添加到给定的数字.第二个函数应该以m的频率递归使用第一个函数.当我输入totaladd(5 3)时,我期待一个8.我怎么能对未定义的函数k做什么?和

(defun add1(n)
    (+ n 1)
    )

(write (add1 5))

(defun totaladd (k m)
    (if (eq m 0)
        0
        (totaladd(add1(k) (- m 1)))
    )
)

(write (totaladd 5 3))
Run Code Online (Sandbox Code Playgroud)

common-lisp

2
推荐指数
1
解决办法
148
查看次数

为什么if(union member)评估为True?

 union Data {
   int i;
   char s[20];
   } data;

int main(){
   printf( "%lu\n", sizeof( data ) );
   for( int i = 0; i < 20; ++i ) {
     data.s[i] = 0;
   }
   data.i = 0;
   strcpy( data.s, "Hello World!");
   if( data.i ) {
       strcpy( data.s, "Farewell!");
   }
   printf( "%s\n", data.s ); 
Run Code Online (Sandbox Code Playgroud)

为什么它以"告别"回应?我希望if( data.i )评估为False,但不知何故,它被评估为True.

c unions

0
推荐指数
1
解决办法
72
查看次数

标签 统计

c ×1

common-lisp ×1

unions ×1