Skill art函数遍历字典

https://www.cnblogs.com/yeungchie/

没什么用的功能,写着玩的,不过遍历的思路没准以后能用上,先记录一下。

  • code
procedure(ycartGo(length1)
	prog(()
		for(x 1 length1
			printf("\nTotal length : %d(%d)\n" x + 3 x)
			_ycart(x)
		)
		;return()
	)
)
procedure(_ycart(length)
	prog((alphabets Alphabets numbers keys begin end funcends funcend func)
		alphabets = list(
			"a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m"
			"n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z"
		)
		Alphabets = list(
			"A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M"
			"N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z"
		)
		;numbers = list("0" "1" "2" "3" "4" "5" "6" "7" "8" "9")
		keys = append(append(alphabets Alphabets) numbers)
		
		begin = ""
		end = ""
		for(x 0 length - 1
			begin = strcat(begin "foreach(key" sprintf(nil "%d " x) "keys ")
			end = strcat(end ")")
		)
		mid = "
			funcends = nil
			for(x 0 length - 1
				funcends = append1(funcends
					strcat(\"key\" sprintf(nil \"%d \" x))
				)
			)
			funcend = \"\"
			foreach(x funcends
				funcend = strcat(funcend evalstring(x))
			)
			func = stringToSymbol(strcat(\"art\" funcend))
			if(fboundp(func) then
				printf(\"I found it ! function - %s\\n\" func)
			)
		"
		evalstring(strcat(begin mid end))
	)
)
  • describe
  1. 用于遍历查找art开头的内置函数。
  2. ycartGo(length1),length1指定函数名art后需要查找的位数,从长度为0开始。
  3. _ycart(length),length指定函数名art后需要查找的位数,固定长度。
  • example
ycartGo(4)
=>

Total length : 4(1)

Total length : 5(2)

Total length : 6(3)

Total length : 7(4)
I found it ! function - artDups
I found it ! function - artInfo
I found it ! function - artLess
I found it ! function - artLoad
I found it ! function - artTrue
I found it ! function - artWarn
nil

你可能感兴趣的:(Skill art函数遍历字典)