[simon8001][simon8001]随风 14:57:56
("1""2""3""4""5""1""11""1""12"16""12")我想把他划分为表("1""2""3""4""5")("1""11")("1""12"16""12")
现在思路比较乱 请问有什么好的思路吗?
[linshiyin2]大地 14:59:14
读取表成字符串再处理呗
ya雀无声 14:59:16
MAPCAR
ya雀无声 14:59:47
(apply
[linshiyin2]大地 15:00:14
字符长短,1的位置
[雨的节奏][雨的节奏] 15:03:34
[qqimg]oldimg/{387A36FF-69D1-E3B6-D3EF-3D71A31169D3}.gif[/qqimg]
cdr函数是除去表内第一个元素
[simon8001][simon8001]随风 15:04:00
还不如用nth了
[q530496591][q530496591]小菜鸟 15:04:26
用nth的话会慢一些。
[pzweng]路人 15:04:39
判断大小
[simon8001][simon8001]随风 15:05:14
但是可以精确定位 然后处理 慢不多少的 我们感觉不出来的 可能就是程序会长些
[q530496591][q530496591]小菜鸟 15:05:48
遇到问题要搞明白啊!不然进步不了
[simon8001][simon8001]随风 15:06:25
嗯 那倒是 你设断点看监视 自己就明白了 我一般都是这么处理的
[q530496591][q530496591]小菜鸟 15:07:28
(cdr lst)是2 第一次取的值是1 然后第二次取的值是2 (cdr lst)是3
但是我不明白后面还有那么多个无素为什么只取一个。
[LLXXZZ]vlisp 15:08:02
[qqimg]oldimg/{0AF89834-F9C6-4B1B-5D3A-EF53015D5B89}.jpg[/qqimg]
换个思路.完全不同的.
[xiaomm09]江湖 15:09:38
什么东东?
ya雀无声 15:14:01
发帖,群也会提示,?很高级,喜欢
[阿然][阿然] 15:17:19
用递归,一下就出来了
[simon8001][simon8001]随风 15:19:01
怎么个递归法?
[q530496591][q530496591]小菜鸟 15:19:04
我想学学表函数啊
[simon8001][simon8001]随风 15:19:26
阿然 您说说?
[q530496591][q530496591]小菜鸟 15:25:14
刚问了开心版主!指点得出的答案……
[lisp-study]jun 15:27:48
[qqimg]oldimg/{53B897FB-AE75-54E6-B2E8-99A30304BEF6}.jpg[/qqimg]这个划分的依据是啥子
[野狼谷]笨鸟 15:29:33
我还行把你这个逆向一下呢
[野狼谷]笨鸟 15:30:04
[qqimg]oldimg/{53B897FB-AE75-54E6-B2E8-99A30304BEF6}.jpg[/qqimg]
是够乱的,都没看明白划分规律
[lisp-study]jun 15:30:49
是啊 先要找到规律
[sqbao] 15:31:22
是遇到“1”就分段?
[simon8001][simon8001]随风 15:31:28
对
是这样的
[pzweng]路人 15:31:50
让表一直从小到大
[野狼谷]笨鸟 15:32:02
建议用vl-position
[simon8001][simon8001]随风 15:32:20
举例是这样的 不一定是1 可能是其他相同的元素即遇到相同的就分段
[q530496591][q530496591]小菜鸟 15:33:12
那就转换成实数。然后nth每一个表元素。
当表元素等于1时就合并前面的表
[simon8001][simon8001]随风 15:34:33
我卡注的位置就是如何合并前面的表而不影响后面的元素
[q530496591][q530496591]小菜鸟 15:35:39
思路我有……代码写的就不多!
[lisp-study]jun 15:41:01
[qqimg]oldimg/{BB7762F6-4FDB-2961-0117-7CA6B83A274B}.jpg[/qqimg]
[pzweng]路人 15:43:24
(defun XP:regrouplst (l)
(if (cadr l)
(cons (car l)
(if (< (read (car l)) (read (cadr l)))
(XP:regrouplst (cdr l))
(cdr l)
)
)
)
)
[simon8001][simon8001]随风 15:44:09
[lisp-study]jun您好!
您做的是我需要的
[simon8001][simon8001]随风 15:45:15
我在LISP编程里 没看到这样的命令呀?
[lisp-study]jun 15:45:36
自定义函数
[simon8001][simon8001]随风 15:46:02
如过方便的话 我可以看到您的程序吗?
[lisp-study]jun 15:46:20
给一个通用的
[qqimg]oldimg/{CCF06922-4F0F-F3DA-D518-AC3B125BB574}.jpg[/qqimg]
[simon8001][simon8001]随风 15:46:25
好
谢谢
[lisp-study]jun 15:46:35
[qqimg]oldimg/{27F62E66-85DA-CA63-26D5-7C9ECC6A444C}.jpg[/qqimg]
[pzweng]路人 15:47:48
这样没意思
[lisp-study]jun 15:48:11
....
[阿然][阿然] 15:48:25
jun的更通用
[pzweng]路人 15:48:29
假如N个,你岂不要搞死人
[pzweng]路人 15:49:22
1 2 3 2 3 4 5 1 7 9 6 7 9 4 9 1 3 2 6 4
[lisp-study]jun 15:49:31
多了换个思路撒 没必要一定要用这个来完成
[pzweng]路人 15:49:33
这样的话你就没辙了
[lisp-study]jun 15:49:42
不是一样的么
[阿然][阿然] 15:49:46
一样啊
[pzweng]路人 15:50:03
[qqimg]oldimg/{901FDBF4-55D4-B7CE-BF78-F02CDB3BDC59}.jpg[/qqimg]
这里不对
[阿然][阿然] 15:50:20
(= x 1)嘛
[lisp-study]jun 15:50:41
lambda是你自己写撒
[阿然][阿然] 15:50:44
这种甚至可以带误差的
1和1.001
[pzweng]路人 15:50:58
1 2 3 2 3 4 5 1 7 9 6 7 9 4 9 1 3 2 6 4 ->
((1 2 3) (3 4 5) (1 7 9) (6 7 9) (4 9) (1 3) (2 6) (4))
[lisp-study]jun 15:51:02
阿然懂的 呵呵
[阿然][阿然] 15:51:08
呵呵
jun这个函数确实很棒
[pzweng]路人 15:51:26
里面任何一个表都是从小到大
[lisp-study]jun 15:52:38
[qqimg]oldimg/{6E8BBB6F-01D8-CE42-7E88-24D6043B5ABA}.jpg[/qqimg]
[pzweng]路人 15:53:03
你这个只是判断1
表里面不是从小到大
[lisp-study]jun 15:53:48
晕 这种情况你就换函数撒 为啥非要一个函数来完成很多工作呢
[simon8001][simon8001]随风 15:54:08
不管怎么样 都很谢谢你们 谢谢!
[q530496591][q530496591]小菜鸟 15:54:58
群里的师兄们都很热心的
一出手必解决你的问题
[lisp-study]jun 15:55:32
阿然厉害 呵呵
[阿然][阿然] 15:55:57
我不厉害,你这个函数我写不出来
[q530496591][q530496591]小菜鸟 15:56:02
阿然厉害!很热心。呵呵
[阿然][阿然] 15:56:17
确实要好好学学这种写法,通用性大增
[lisp-study]jun 15:56:29
有问题 找阿然
[q530496591][q530496591]小菜鸟 15:56:56
谁有空谁帮着解决一下嘛!
[simon8001][simon8001]随风 15:58:08
jun 您好
如果我的元素本身也是个表呢?
比如(("1""a")("3""4")("5""a")("6""7"))
还是遇到a就能划分为几个表 这个是我真正遇到的问题
划分为(("1""a")("3""4")("5""a"))(("6""7"))
[simon8001][simon8001]随风 15:59:36
是这样的(("1""a")("3""4"))(("5""a")("6""7"))刚才的错了
[ruirui9]睿睿哥 16:04:33
[qqimg]oldimg/{78143D2F-255D-8B9C-81E5-1DF70263CC42}.gif[/qqimg]
[pzweng]路人 16:06:01
[qqimg]oldimg/{17F13580-2D3D-6151-0EB4-F1E2974E9EFE}.jpg[/qqimg]
[mccad][MCCAD] 16:07:42
发小龙虾 |