这是我对Evgeniy函数的修改版本,它应该可以在您的示例中成功执行:
- ([color=BLUE]defun[/color] eea-lm-str_int_sort ( l f )
- ([color=BLUE]mapcar[/color] ([color=BLUE]function[/color] ([color=BLUE]lambda[/color] ( a ) ([color=BLUE]nth[/color] a l)))
- ([color=BLUE]vl-sort-i[/color] ([color=BLUE]if[/color] f ([color=BLUE]mapcar[/color] '[color=BLUE]strcase[/color] l) l)
- ([color=BLUE]function[/color]
- ([color=BLUE]lambda[/color] ( a b [color=BLUE]/[/color] i )
- ([color=BLUE]setq[/color] i ([color=BLUE]vl-string-mismatch[/color] a b))
- ([color=BLUE]cond[/color]
- ( ([color=BLUE]zerop[/color] i)
- ([color=BLUE]if[/color] ([color=BLUE]and[/color] ([color=BLUE]<[/color] 47 ([color=BLUE]ascii[/color] a) 58) ([color=BLUE]<[/color] 47 ([color=BLUE]ascii[/color] b) 58))
- ([color=BLUE]<[/color] ([color=BLUE]atoi[/color] a) ([color=BLUE]atoi[/color] b))
- ([color=BLUE]<[/color] a b)
- )
- )
- ( ([color=BLUE]=[/color] i ([color=BLUE]strlen[/color] a)))
- ( ([color=BLUE]=[/color] i ([color=BLUE]strlen[/color] b)) [color=BLUE]nil[/color])
- ( ([color=BLUE]and[/color]
- ([color=BLUE]<[/color] 47 ([color=BLUE]vl-string-elt[/color] a i) 58)
- ([color=BLUE]<[/color] 47 ([color=BLUE]vl-string-elt[/color] b i) 58)
- )
- ([color=BLUE]<[/color] ([color=BLUE]atoi[/color] ([color=BLUE]substr[/color] a ([color=BLUE]1+[/color] i))) ([color=BLUE]atoi[/color] ([color=BLUE]substr[/color] b ([color=BLUE]1+[/color] i))))
- )
- ( ([color=BLUE]<[/color] 47 ([color=BLUE]vl-string-elt[/color] a ([color=BLUE]1-[/color] i)) 58)
- ([color=BLUE]<[/color] ([color=BLUE]atoi[/color] ([color=BLUE]substr[/color] a i)) ([color=BLUE]atoi[/color] ([color=BLUE]substr[/color] b i)))
- )
- ( ([color=BLUE]<[/color] a b))
- )
- )
- )
- )
- )
- )
我想对位置2列表排序 |