处理列表中的漏洞 [GAP 系统]



我有一个关于列表中的漏洞的问题。假设我有以下代码:

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 个元素是否为 hole?我正在寻找这样的东西:

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 函数,它为"hole"元素返回 false。这是我示例中编辑的代码:

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 

最新更新