[已解决] 构造List

  [复制链接]
查看233806 | 回复175 | 2020-12-18 06:08:17 | 显示全部楼层 |阅读模式
如何用{1..4}构造{1},{1..2},{1..3},{1..4},{2},{2..3},{2..4},{3},{3..4},{4}10个List?
回复

使用道具 举报

车大炮 | 2020-12-18 06:17:18 | 显示全部楼层
这个牛逼,坐等大佬了
回复

使用道具 举报

dino316 | 2020-12-18 06:21:18 | 显示全部楼层
10784111247551.png
回复

使用道具 举报

草莓妹 | 2020-12-18 06:25:18 | 显示全部楼层
=List.Select(List.TransformMany({1..4},(i)=>{1..4},(x,y)=>{x..y}),each List.Sum(_)>0)
回复

使用道具 举报

文仔 | 2020-12-18 06:31:19 | 显示全部楼层
楼上两位很强大,我也凑个热闹
复习一下函数的递归
  1. let

  2.   Source = {1..4}, lower = List.Min(Source), upper = List.Max(Source),



  3.   fx = (l as list, lol as list) as list =>

  4.   [

  5.   i = l{0},

  6.   j = List.Max(l),

  7.   LOL = if i=j then lol & {{i}} else lol & {l},

  8.   result = if j<upper then @fx({i..j+1}, LOL) else if i<upper then @fx({i+1..i+1}, LOL) else LOL

  9.   ][result]

  10. in

  11.   fx({lower..lower}, {})
复制代码
回复

使用道具 举报

sunwww | 2020-12-18 06:37:19 | 显示全部楼层
谢谢各位的热心解答,现在没有电脑,只能明天再看了。现在把数据源改一下:{2,3.3,1.5,6},要求生成:{2},{2,3.3},{2,3.3,1.5},{2,3.3,1.5,6},{3.3},{3.3,1.5},{3.3,1.5,6},{1.5},{1.5,6},{6} 有通用的解答吗?
回复

使用道具 举报

xyttdyso | 2020-12-18 06:38:19 | 显示全部楼层
试试这个,仅供参考。。。
10784111247552.png
回复

使用道具 举报

only2 | 2020-12-18 06:44:19 | 显示全部楼层
果然没有many,写了个最长的
10784111247553.jpg
回复

使用道具 举报

信息量 | 2020-12-18 06:51:20 | 显示全部楼层
留底,有时间学习
回复

使用道具 举报

阿毛 | 2020-12-18 06:54:20 | 显示全部楼层
List. Range只能取List中位置连续的值,如何提取位置不连续的List组合?还是拿{2,3.3,1.5,6}为例,怎么生成{2},{2,3.3},{2,1.5},{2,6},{2,3.3,1.5},{2,3.3,6},{2,1.5,6},{2,3.3,1.5,6},{3.3},{3.3,1.5},{3.3,6},{3.3,1.5,6},{1.5},{1.5,6},{6}共15个(1个数的List4个,2个数的List6个,3个数的List4个,4个数的List1个)List组合?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则