LISP(列表处理)的功能是列表,尤其是关联列表。
看起来你有一些编程经验,
因此,您可能知道编写完整代码的任务之一是了解该语言的可能性,并写下要执行的步骤。
我会使用grread来处理整个事情,即:
首先是几个子功能:
- [b][color=BLACK]([/color][/b]defun GetModeCO [b][color=FUCHSIA]([/color][/b] / Stop grr mode [b][color=FUCHSIA])[/color][/b]
- [b][color=FUCHSIA]([/color][/b]princ [color=#2f4f4f]"\nSpecify mode [CO/CO+/CO-], [RMB] to exit <CO>: "[/color][b][color=FUCHSIA])[/color][/b]
- [b][color=FUCHSIA]([/color][/b]while [b][color=NAVY]([/color][/b]not Stop[b][color=NAVY])[/color][/b]
- [b][color=NAVY]([/color][/b]setq grr [b][color=MAROON]([/color][/b]grread[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
- [b][color=NAVY]([/color][/b]cond
- [b][color=MAROON]([/color][/b] [b][color=GREEN]([/color][/b]= 2 [b][color=BLUE]([/color][/b]car grr[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
- [b][color=GREEN]([/color][/b]and
- [b][color=BLUE]([/color][/b]setq mode [b][color=RED]([/color][/b]cdr [b][color=PURPLE]([/color][/b]assoc [b][color=TEAL]([/color][/b]cadr grr[b][color=TEAL])[/color][/b] '[b][color=TEAL]([/color][/b][b][color=OLIVE]([/color][/b]13 . [color=#2f4f4f]"CO"[/color][b][color=OLIVE])[/color][/b] [b][color=OLIVE]([/color][/b]43 . [color=#2f4f4f]"CO+"[/color][b][color=OLIVE])[/color][/b] [b][color=OLIVE]([/color][/b]45 . [color=#2f4f4f]"CO-"[/color][b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
- [b][color=BLUE]([/color][/b]princ [b][color=RED]([/color][/b]strcat [color=#2f4f4f]"\nMode chosen: "[/color] mode [color=#2f4f4f]"\n"[/color][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
- [b][color=BLUE]([/color][/b]setq Stop T[b][color=BLUE])[/color][/b]
- [b][color=GREEN])[/color][/b][color=#8b4513]; and[/color]
- [b][color=MAROON])[/color][/b]
- [b][color=MAROON]([/color][/b] [b][color=GREEN]([/color][/b]= 25 [b][color=BLUE]([/color][/b]car grr[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq Stop T[b][color=GREEN])[/color][/b] [b][color=MAROON])[/color][/b]
- [b][color=NAVY])[/color][/b][color=#8b4513]; cond[/color]
- [b][color=FUCHSIA])[/color][/b][color=#8b4513]; while[/color]
- mode
- [b][color=BLACK])[/color][/b][color=#8b4513]; defun GetModeCO[/color]
- [b][color=BLACK]([/color][/b]defun GetIncVal [b][color=FUCHSIA]([/color][/b] s i / n msg grr Stop pm [b][color=FUCHSIA])[/color][/b]
- [b][color=FUCHSIA]([/color][/b]if [b][color=NAVY]([/color][/b]and [b][color=MAROON]([/color][/b]or [b][color=GREEN]([/color][/b]numberp s[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq s 0.[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]numberp i[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
- [b][color=NAVY]([/color][/b]progn
- [b][color=MAROON]([/color][/b]setq n s[b][color=MAROON])[/color][/b]
- [b][color=MAROON]([/color][/b]princ [b][color=GREEN]([/color][/b]setq msg [b][color=BLUE]([/color][/b]strcat [color=#2f4f4f]"\nStretching value: "[/color][color=#2f4f4f]" [b][color=RED]([/color][/b]rtos [b][color=PURPLE]([/color][/b]if n n s[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b] "[/color]\[color=#2f4f4f]", use [+/-] to increase/decrease <exit>: "[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
- [b][color=MAROON]([/color][/b]while [b][color=GREEN]([/color][/b]not Stop[b][color=GREEN])[/color][/b]
- [b][color=GREEN]([/color][/b]setq grr [b][color=BLUE]([/color][/b]grread[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
- [b][color=GREEN]([/color][/b]cond
- [b][color=BLUE]([/color][/b] [b][color=RED]([/color][/b]= 2 [b][color=PURPLE]([/color][/b]car grr[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b]
- [b][color=RED]([/color][/b]and [b][color=PURPLE]([/color][/b]= 13 [b][color=TEAL]([/color][/b]cadr grr[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]setq Stop T[b][color=PURPLE])[/color][/b] [b][color=RED])[/color][/b]
- [b][color=RED]([/color][/b]and
- [b][color=PURPLE]([/color][/b]setq pm [b][color=TEAL]([/color][/b]cdr [b][color=OLIVE]([/color][/b]assoc [b][color=GRAY]([/color][/b]cadr grr[b][color=GRAY])[/color][/b] '[b][color=GRAY]([/color][/b][b][color=AQUA]([/color][/b]43 . +[b][color=AQUA])[/color][/b] [b][color=AQUA]([/color][/b]45 . -[b][color=AQUA])[/color][/b][b][color=GRAY])[/color][/b][b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b]
- [b][color=PURPLE]([/color][/b]setq n [b][color=TEAL]([/color][/b]apply pm [b][color=OLIVE]([/color][/b]list n i[b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b]
- [b][color=PURPLE]([/color][/b]princ [b][color=TEAL]([/color][/b]setq msg [b][color=OLIVE]([/color][/b]strcat [color=#2f4f4f]"\nStretching value: "[/color][color=#2f4f4f]" [b][color=GRAY]([/color][/b]rtos [b][color=AQUA]([/color][/b]if n n s[b][color=AQUA])[/color][/b][b][color=GRAY])[/color][/b] "[/color]\[color=#2f4f4f]", use [+/-] to increase/decrease <exit>: "[/color][b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b]
- [b][color=RED])[/color][/b][color=#8b4513]; and[/color]
- [b][color=BLUE])[/color][/b]
- [b][color=BLUE]([/color][/b] [b][color=RED]([/color][/b]= 25 [b][color=PURPLE]([/color][/b]car grr[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b]setq Stop T[b][color=RED])[/color][/b] [b][color=BLUE])[/color][/b]
- [b][color=GREEN])[/color][/b][color=#8b4513]; cond[/color]
- [b][color=MAROON])[/color][/b][color=#8b4513]; while[/color]
- n
- [b][color=NAVY])[/color][/b][color=#8b4513]; progn[/color]
- [b][color=FUCHSIA])[/color][/b][color=#8b4513]; if [/color]
- [b][color=BLACK])[/color][/b][color=#8b4513]; defun GetIncVal[/color]
然后是测试功能:
- [b][color=BLACK]([/color][/b]if
- [b][color=FUCHSIA]([/color][/b]and
- [color=#8b4513];| CO- course is: 102.5 > 215 > 327.5 > 440 and so on... [/color]
- CO course is: 112.5 > 225 > 337.5 > 450 and so on...
- CO+ course is: 122.5 > 235 > 347.5 > 460 and so on... |[color=#8b4513];[/color]
- [b][color=NAVY]([/color][/b]setq m [b][color=MAROON]([/color][/b]cadr [b][color=GREEN]([/color][/b]assoc [b][color=BLUE]([/color][/b]GetModeCO[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]list '[b][color=RED]([/color][/b][color=#2f4f4f]"CO"[/color] 102.5[b][color=RED])[/color][/b] '[b][color=RED]([/color][/b][color=#2f4f4f]"CO+"[/color] 112.5[b][color=RED])[/color][/b] '[b][color=RED]([/color][/b][color=#2f4f4f]"CO-"[/color] 122.5[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
- [b][color=NAVY]([/color][/b]setq n [b][color=MAROON]([/color][/b]GetIncVal m 112.5[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
- [b][color=FUCHSIA])[/color][/b]
- [b][color=FUCHSIA]([/color][/b]alert [b][color=NAVY]([/color][/b]strcat [color=#2f4f4f]"\nStretch value: "[/color] [b][color=MAROON]([/color][/b]rtos n[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
- [b][color=BLACK])[/color][/b]
收集用户的输入相对容易,但我遇到的主要问题是实际的拉伸命令。
我做了很多尝试让它工作,但它总是不能“正常运行”。
也许这就是为什么你没有收到其他人的回复。 |