2

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

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;

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

4

1 回答 1

2

我再次检查了文档,终于找到了我的问题的答案。感谢@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 
于 2020-06-22T17:11:15.660 回答