明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2561|回复: 11

不知道如何实现字符串连接,请指点

  [复制链接]
发表于 2012-12-11 11:56:44 | 显示全部楼层 |阅读模式
1明经币
本帖最后由 革天明 于 2012-12-11 13:43 编辑

有两个数组(A1 B1 C1 D1)和(A2 B2 C2)
如何生成以下表:
(A1A2 A1B2 A1C2 B1A2 B1B2 B1C2 C1A2 C1B2 C1C2 D1A2 D1B2 D1C2)
求对应的函数

最佳答案

查看完整内容

_$ (length (c:tt)) 4536 _$
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2012-12-11 11:56:45 | 显示全部楼层
_$ (length (c:tt))
4536
_$

评分

参与人数 1明经币 +1 收起 理由
革天明 + 1 赞一个!楼主好技术

查看全部评分

回复

使用道具 举报

发表于 2012-12-11 12:28:29 来自手机 | 显示全部楼层
感觉没有看懂你的意思!
回复

使用道具 举报

 楼主| 发表于 2012-12-11 12:30:40 | 显示全部楼层
本帖最后由 革天明 于 2012-12-11 12:31 编辑

101@201@301@0.7-0-0.51-1.81-0.9-120-1.6-15-0-0
101@201@302@0.7-0-0.51-1.81-0.9-120-1.6-15-0-0
101@201@303@0.7-0-0.51-1.81-0.9-120-1.6-15-0-0
101@201@304@0.7-0-0.51-1.81-0.9-120-1.6-15-0-0
101@201@305@0.7-0-0.51-1.81-0.9-120-1.6-15-0-0
101@201@306@0.7-0-0.51-1.81-0.9-120-1.6-15-0-0
101@201@307@0.7-0-0.51-1.81-0.9-120-1.6-15-0-0
101@201@308@0.7-0-0.51-1.81-0.9-120-1.6-15-0-0
101@201@309@0.7-0-0.51-1.81-0.9-120-1.6-15-0-0
101@201@310@0.7-0-0.51-1.81-0.9-120-1.6-15-0-0
101@201@311@0.7-0-0.51-1.81-0.9-120-1.6-15-0-0
101@201@312@0.7-0-0.51-1.81-0.9-120-1.6-15-0-0
目前只能生成这12个,但理论上应有14*27*12=4536个

如果把上面的101换成102。。。。
我要的就是这种结果
回复

使用道具 举报

 楼主| 发表于 2012-12-11 13:44:31 | 显示全部楼层
xiabin68 发表于 2012-12-11 12:28
感觉没有看懂你的意思!

现在可以看懂了吗
回复

使用道具 举报

发表于 2012-12-11 13:57:50 | 显示全部楼层
本帖最后由 ll_j 于 2012-12-11 13:58 编辑

  1. (defun c:tt ()
  2.   (setq  lst1 (list "101"    "102"    "103"    "104"    "105"
  3.        "106"    "107"    "108"    "109"    "110"
  4.        "111"    "112"    "113"    "114"
  5.       )
  6.   )
  7.   (setq  lst2 (list "201"    "202"    "203"    "204"    "205"
  8.        "206"    "207"    "208"    "209"    "210"
  9.        "211"    "212"    "213"    "214"    "215"
  10.        "216"    "217"    "218"    "219"    "220"
  11.        "221"    "222"    "223"    "224"    "225"
  12.        "226"    "227"
  13.       )
  14.   )
  15.   (setq  lst3 (list "301"    "302"    "303"    "304"    "305"
  16.        "306"    "307"    "308"    "309"    "310"
  17.        "311"    "312"
  18.       )
  19.   )
  20.   (setq str "0.7-0-0.51-1.81-0.9-120-1.6-15-0-0")
  21.   (setq  lst0 (mapcar
  22.          '(lambda  (z)
  23.       (mapcar
  24.         '(lambda (y)
  25.            (mapcar
  26.        '(lambda (x)
  27.           (strcat z "@" y "@" x "@" str)
  28.         )
  29.        lst3
  30.            )
  31.          )
  32.         lst2
  33.       )
  34.     )
  35.          lst1
  36.        )
  37.   )
  38. )

这是你要的么?

一个建议,不要用纯数字作为函数名,虽然不是禁止的,却容易与其它内容冲突,也可以说只是一个习惯问题,但最好还是保持一个好习惯。

回复

使用道具 举报

 楼主| 发表于 2012-12-11 14:07:37 | 显示全部楼层
本帖最后由 革天明 于 2012-12-11 14:08 编辑
ll_j 发表于 2012-12-11 13:57
这是你要的么?

一个建议,不要用纯数字作为函数名,虽然不是禁止的,却容易与其它内容冲突,也可以说 ...


表应该出来了,但没有散开了,lst0只有14个,我自己试试能不能改

(car(car(nth 0 lst0)))的结果是:
"[url=mailto:101@201@301@0.7-0-0.51-1.81-0.9-120-1.6-15-0-0]101@201@301@0.7-0-0.51-1.81-0.9-120-1.6-15-0-0[/url]"

也就表的导数太深了
回复

使用道具 举报

发表于 2012-12-11 14:18:38 | 显示全部楼层
用“(setq lst4 (apply 'append (apply 'append lst0)))”就可以化开成为单层的表了,不过不建议这样做,表的元素太多,操作会很慢。
回复

使用道具 举报

发表于 2012-12-11 14:21:56 | 显示全部楼层
(defun string-hebing (lst1 lst2 / x y)
  (apply 'append (mapcar '(lambda(x)
           (mapcar '(lambda(y)
                      (strcat x y))
                   lst2)
           )
        lst1))
  )

评分

参与人数 1明经币 +1 收起 理由
革天明 + 1 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2012-12-11 14:24:41 | 显示全部楼层
ll_j 发表于 2012-12-11 14:18
用“(setq lst4 (apply 'append (apply 'append lst0)))”就可以化开成为单层的表了,不过不建议这样做,表 ...

谢谢你了!程序是用来生成这个字符串的,共4536条,不过比手工输入的方法快多了,我也想过用mapcar,但用两三层的我想不到,你的程序很棒,我得再研究研究
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-6-3 13:47 , Processed in 0.215559 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表