免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5502 | 回复: 16
打印 上一主题 下一主题

没有中间变量。如何实现两个数字数组的差集。 [复制链接]

论坛徽章:
5
丑牛
日期:2014-01-21 08:26:26卯兔
日期:2014-03-11 06:37:43天秤座
日期:2014-03-25 08:52:52寅虎
日期:2014-04-19 11:39:48午马
日期:2014-08-06 03:56:58
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-04-14 15:33 |只看该作者 |倒序浏览
本帖最后由 pitonas 于 2014-04-14 09:10 编辑

my @a = 0 .. 10;
my @b = ( 1, 3, 5, 7, 9 );
差集: @a 差集 @b == ( 0, 2, 4, 6, 8, 10 )

没有中间模块
没有中间变量
如何实现两个数字数组的差集。

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
2 [报告]
发表于 2014-04-14 15:49 |只看该作者
回复 1# pitonas
  1. perl -MData::Dumper  -le 'use 5.1.0;@a=(1,3,5,7,10); @all=(0..10); $s =[grep{not $_~~@a}@all]; print Dumper $s'
  2. $VAR1 = [
  3.           0,
  4.           2,
  5.           4,
  6.           6,
  7.           8,
  8.           9
  9.         ];
复制代码

论坛徽章:
5
丑牛
日期:2014-01-21 08:26:26卯兔
日期:2014-03-11 06:37:43天秤座
日期:2014-03-25 08:52:52寅虎
日期:2014-04-19 11:39:48午马
日期:2014-08-06 03:56:58
3 [报告]
发表于 2014-04-14 15:53 |只看该作者
{:2_170:}  我震惊了。


回复 2# yinyuemi


   

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
4 [报告]
发表于 2014-04-14 16:02 |只看该作者
本帖最后由 jason680 于 2014-04-14 16:07 编辑

回复 1# pitonas

use Array::Utils module with array_diff function

http://search.cpan.org/~zmij/Array-Utils-0.5/Utils.pm   


$ perl -le 'use Array::Utils ":all"; @a=(0..10);@b=(1,3,5,7,9);print join",",array_diff(@a,@b)'
0,2,4,6,8,10

   

论坛徽章:
5
丑牛
日期:2014-01-21 08:26:26卯兔
日期:2014-03-11 06:37:43天秤座
日期:2014-03-25 08:52:52寅虎
日期:2014-04-19 11:39:48午马
日期:2014-08-06 03:56:58
5 [报告]
发表于 2014-04-14 16:08 |只看该作者

师傅
那没有中间变量。
{:2_175:} 但有中间模块

回复 4# jason680


   

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
6 [报告]
发表于 2014-04-14 16:24 |只看该作者
本帖最后由 jason680 于 2014-04-14 16:30 编辑

回复 5# pitonas

Did you always walk to anywhere ...
   

How about this one that didn't have any variable
http://zh.wikipedia.org/zh-tw/Brainfuck

$ bf hello.bf
Hello World!

$ cat hello.bf
++++++++++[>+++++++>++++++++++>+++>+<<<<-]
>++.>+.+++++++..+++.>++.<<+++++++++++++++.
>.+++.------.--------.>+.>.

论坛徽章:
5
丑牛
日期:2014-01-21 08:26:26卯兔
日期:2014-03-11 06:37:43天秤座
日期:2014-03-25 08:52:52寅虎
日期:2014-04-19 11:39:48午马
日期:2014-08-06 03:56:58
7 [报告]
发表于 2014-04-14 16:30 |只看该作者

{:2_172:} 师傅, just curious

回复 6# jason680


   

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
8 [报告]
发表于 2014-04-14 16:54 |只看该作者
本帖最后由 jason680 于 2014-04-14 16:54 编辑

回复 3# pitonas

it have the internal variable ($_) ....
$s =[grep{not $_~~@a}@all]
   

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
9 [报告]
发表于 2014-04-16 02:17 |只看该作者
jason680 发表于 2014-04-14 12:24
回复 5# pitonas
  1. ++++++++++[>+++++++>++++++++++>+++>+<<<<-]
  2. >++.>+.+++++++..+++.>++.<<+++++++++++++++.
  3. >.+++.------.--------.>+.>.
复制代码
Did you always walk to anywhere ...


这个有意思~

求职 : 软件工程师
论坛徽章:
3
程序设计版块每日发帖之星
日期:2015-10-07 06:20:00程序设计版块每日发帖之星
日期:2015-12-13 06:20:00程序设计版块每日发帖之星
日期:2016-05-05 06:20:00
10 [报告]
发表于 2014-04-16 08:22 |只看该作者
过程之间必须传递计算结果才能彼此合作,在Perl语言中,一些过程看似没有变量,实际上是写法上的精简,使用了默认的变量,函数式编程之所以没有中间变量,是因为每个表达式都会返回一个数据,另外的过程就会使用这个返回值继续运算,这种写法不是精简写法,就是这么写的,所以函数式语言中大部分的列表运算是没有变量的。就好象每个表达式前面都有一个隐藏的 ‘map' or 'grep'
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP