使用列表中的漏洞 [GAP SYSTEM]

Working with holes in the lists [GAP SYSTEM]

我对列表中的漏洞有疑问。假设我有以下代码:

gap> l:=[2,3,,5];
[ 2, 3,, 5 ]
gap> for i in [1..Size(l)] do
> Print(l[i],"\n");
> od;
2
3
Error, List Element: <list>[3] must have an assigned value in
  Print( l[i], "\n" ); at *stdin*:13 called from 
<function "unknown">( <arguments> )
 called from read-eval loop at *stdin*:14
you can 'return;' after assigning a value

在尝试访问列表的第 i 个元素之前,是否有一些函数可以判断它是否为空洞?我正在寻找这样的东西:

gap> for i in [1..Size(l)] do
> if IS_HOLE(l[i])=true then Print("Hole \n); else Print(l[i],"\n"); fi;
> od;

我已经阅读了手册,但仍然不知道如何处理这个问题。有人可以提出一些解决这个问题的方法吗?

我再次检查了文档,终于找到了问题的答案。感谢@mike_pierce 的提示。我不得不使用 IsBound 函数,它 returns false 对于 'hole' 元素。这是我的示例中经过编辑的代码:

gap> l:=[2,3,,5];;   
gap> for i in [1..Size(l)] do   
> if IsBound(l[i])=false then Print("Hole \n"); else Print(l[i],"\n"); fi;   
> od;   
2 
3 
Hole  
5