home *** CD-ROM | disk | FTP | other *** search
- #!/usr/local/bin/kermit +
- #
- # With pleasure I implemented the string permutation in C-Kermit attached
- # here. What C-Kermit can do is limited only by one's own imagination.
- #
- # Dat Thuc Nguyen
- # 16 January 2004
- #
- # \%1 = String to be permuted
- # \%2 = Length of current segment
- #
- define permute {
- (let n \flength(\%1) cnt 0)
- local recur
- define recur {
- if == \%2 n {
- (++ cnt)
- echo \flpad(\m(cnt),5). \%1
- } else {
- local i
- for i \%2 n 1 {
- if > i \%2 {
- asg \%1 \fsubstr(\%1,1,\%2-1)\fsubstr(\%1,i,1)-
- \fsubstr(\%1,\%2+1,i-\%2-1)\fsubstr(\%1,\%2,1)\fsubstr(\%1,i+1,\flen(\%1))
- }
- recur {\%1} \feval(\%2+1)
- }
- }
- }
- recur {\%1} 1
- echo
- }
-
- echo Testing...
-
- permute a # One letter
- permute ab # Two letters
- permute abc # Three
- permute abcd # Four
-
- echo To try it yourself type:
- echo
- echo { permute "word(s) of your choice"}
- echo
- END
-