Scheme 里只有链表,但是通过链表可以实现各种复杂的操作。
常用的链表操作有:
- CAR:返回链表的第一个元素
 - CDR:返回除第一个元素的所有元素组成的链表
 - CONS:连接两个链表
 
使用以上操作,实现删除链表的最后一个元素:
( DEFINE ( all_but_last lis )
	( COND 
		( (empty? lis) ( error 'all_but_last "empty list" ) ) ; 输入空链表报错
		( (empty? (CDR lis) ) empty ) ; 输入的链表只有一个元素,返回空
		( ELSE 
			( CONS 
				( CAR lis )
				( all_but_last (CDR lis) ) ; 保留链表的第一个元素,并递归调用
			)
		)
	)
)
                
                  
                  
                  
                  
                            
                            
本文介绍Scheme语言中如何利用CAR、CDR和CONS等基本操作来实现链表的常见功能,特别是如何通过递归方法删除链表中的最后一个元素。
          
                    
      
          
                
                
                
                
              
                
                
                
                
                
              
                
                
              
            
                  
					981
					
被折叠的  条评论
		 为什么被折叠?
		 
		 
		
    
  
    
  
            


            