Vector home www.vector.org.uk > back issues > contents of Vector 16.3

PROPER Capitals

From: Adam KerteszNov 1999

Here is a little utility which capitalizes the first letter in a text string and any other letters in text that follow any character other than a letter.


    ’ R A PROPER B;ALLC;BOOL;FIRST;IND;K;LC;N;P;UC;X; IO
[1]   © Adam Kertesz, 03/20/1998+05/21/1999
[2]   ©      To change text into ¨Proper¨ format
[3]   ©      B is a character vector to change
[4]   ©      A is a two part exception list, both vector of vectors
[5]   ©      If not exists: empty
[6]   ©      If exists: [1] remain as is , e.g. APL APL, WfWG WfWG
[7]   ©                 [2] should be all lowercase, e.g. AND and
[8]     IO 0
[9]    :IF 2 NC 'A' ª A 2½ ''
[10]   :ENDIF
[11]   (A N) 2 A ª B ,B
[12]   UC  AV[( AV¼'A')+¼26] ª LC  AV[( AV¼'a')+¼26] ª ALLC UC,LC
[13]   BOOL B¹ALLC ª FIRST 1 ª R ''
[14]   :WHILE 0<½B
[15]     X +/^\BOOL=BOOL[0] ª K X B ª B X B
[16]     :IF BOOL[0]
[17]     :ANDIF ~( K)¹A
[18]       IND ALLC¼K ª P (( K)¹N) FIRST ª K[0] UC[26|IND[0]] ª
            K[P ¼½K] LC[26|P IND]
[19]     :ENDIF
[20]     R R,K ª FIRST FIRST>BOOL[0] ª BOOL X BOOL
[21]   :ENDWHILE
    ’
	PROPER 'this is a TITLE'
This Is A Title

	PROPER '76budGet' 
76Budget

	PROPER 'ATHENS, georgia'
Athens, Georgia

	LIST1 ''
	LIST2 'THIS' 'IS'  'A'
	(LIST1 LIST2) PROPER 'THIS IS A TITLE'
This is a Title

	LIST1 'APL'  'COBOL'
	LIST2 'ARE'  'AND'
	(LIST1 LIST2) PROPER 'APL AND COBOL ARE LANGUAGES.'
APL and COBOL are Languages.

	(LIST1 LIST2) PROPER 'ARE APL AND COBOL LANGUAGES?'
Are APL and COBOL Languages?

Vector home www.vector.org.uk > back issues > contents of Vector 16.3