乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 49|回复: 13

[编程交流] 如何获得函数#039;s

[复制链接]

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 11:26:35 | 显示全部楼层 |阅读模式
你好
 
我需要将当前函数的名称(由defun定义)转换为字符串,并在函数中使用此字符串。。。有可能吗?
 
谢谢你的回答!
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:34:07 | 显示全部楼层
使用atoms家族是我现在唯一能想到的事情——你为什么要这么做?
回复

使用道具 举报

5

主题

194

帖子

193

银币

初来乍到

Rank: 1

铜币
24
发表于 2022-7-6 11:36:28 | 显示全部楼层
你能发布一个你想要实现的示例代码吗?
回复

使用道具 举报

5

主题

194

帖子

193

银币

初来乍到

Rank: 1

铜币
24
发表于 2022-7-6 11:41:27 | 显示全部楼层
一些使用反应堆的东西,但我不确定这是否是你想要的。。
 
关键是它只返回初始函数名
 
  1. ;Create a command reactor to watch for lisp functions
  2. (vlr-lisp-reactor nil '((:vlr-lispWillStart . storeFunctionName)))
  3. ;Store the command name in a global variable called *currentLispFunction*
  4. (defun storeFunctionName (<Reactor> <Command>)
  5.   
  6. (setq *currentLispFunction*  (car <Command>))
  7. )
  8. (defun c:test ()
  9. (alert  (strcat "\nFunction [" *currentLispFunction* "] started..."))
  10.    )
回复

使用道具 举报

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 11:45:48 | 显示全部楼层
我只是AutoLISP的初学者,我认为有比反应堆更简单的方法。也许我会尝试找到不同的解决方案。。。
 
非常感谢您的回答!
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:51:51 | 显示全部楼层
只是好奇,你想实现什么?
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 11:58:13 | 显示全部楼层
以下是我所拥有的:
 
  1. [color=#8b4513];converts a quoted symbol to a string[/color]
  2. [b][color=BLACK]([/color][/b]defun symstr [b][color=FUCHSIA]([/color][/b]name[b][color=FUCHSIA])[/color][/b]
  3. [b][color=FUCHSIA]([/color][/b]if [b][color=NAVY]([/color][/b]= [b][color=MAROON]([/color][/b]type name[b][color=MAROON])[/color][/b] 'SYM[b][color=NAVY])[/color][/b]
  4.    [b][color=NAVY]([/color][/b]
  5.      [b][color=MAROON]([/color][/b]list
  6.        [b][color=GREEN]([/color][/b]if [b][color=BLUE]([/color][/b]boundp name[b][color=BLUE])[/color][/b]
  7.          [b][color=BLUE]([/color][/b]cons '/ [b][color=RED]([/color][/b]atoms-family 0[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
  8.          [b][color=BLUE]([/color][/b]cons '/ [b][color=RED]([/color][/b]cons name [b][color=PURPLE]([/color][/b]atoms-family 0[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
  9.        [b][color=GREEN])[/color][/b]
  10.        [b][color=GREEN]([/color][/b]list setq name 0[b][color=GREEN])[/color][/b]
  11.        [b][color=GREEN]([/color][/b]list car [b][color=BLUE]([/color][/b]list atoms-family 1[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  12.      [b][color=MAROON])[/color][/b]
  13.    [b][color=NAVY])[/color][/b]
  14.    nil
  15. [b][color=FUCHSIA])[/color][/b]
  16. [b][color=BLACK])[/color][/b]

 
但是你的个人资料上写着?
 
-大卫
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:00:55 | 显示全部楼层
如果你有这个符号,你能不能不用:
 
  1. (vl-princ-to-string sym)
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 12:04:04 | 显示全部楼层
 
李,
 
你抓住我了-大卫
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:10:17 | 显示全部楼层
不,我知道你不能使用VL功能,大卫,这对你有点不公平。
 
但是,回到你的例子——我不太理解你正在使用的方法,如果你有时间,请你解释一下思维过程好吗?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-4 00:45 , Processed in 2.096117 second(s), 90 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表