Or this

BinaryToDecimal(Binary,Debug=0)
              Debug {
                             !,"Binary number: ",Binary
                             !,"Bit",?20,"Cumulative",!
              }
              Decimal=0
              Power=0:1 {
                             Bit=$e(Binary,*) ; last digit
                             q:Bit=""  ; at end
                             s $e(Binary,*)="" ; shorten binary number by removing last character
                             Integer=(2**Power)*Bit ; 2**0 =1, 2**1 =2, 2**2 =4 etc..
                             Decimal=Decimal+Integer ; running decimal sum of each Bit
                             Debug Integer,?20,Decimal,!
              }
              Decimal

Prefer the SET method for both readability and performance. However, when it comes  to readability, I see it as my deficiency if I can't read it instead of the author's deficiency - unless the code is deliberately obtuse. And when it comes to performance, you should only write something unreadable if it is necessary to gain performance for code run hundreds of thousands of times a day. But then you would comment your code so well that anyone could read the comment and wouldn't need to read the code to know how it worked and what it does.

N(i) s l="lfa7ravo7harlie7elta7cho7oxtrot7olf7otel7ndia7uliett7ilo7ima7ike7ovember7scar7apa7uebec7omeo7ierra7ango7niform7ictor7hiskey7ray7ankee7ulu"

 f j=1:1:$l(i) s c=$e(i,j),o=$g(o)_$s(",.!?"[c:c,c?1a:$e(" ",j>1)_c_$p(l,7,$a(c)#32),1:"")

q o

; 243 chars

; save 2 quote characters by using a number (7) as the delimiter

; save characters by not $ZCVT to upper, $A(k)#32 works fine for lower and upper

;save on $ZSTRIP of whitespace by only adding space character for every letter after 1st one

; ensure to follow the rules on allowed punctuation and exclude all other characters

Hi Oliver,

I spent 20 years developing software, originally in MUMPS but now in Objectscript, runs on IRIS, that generates SWIFT MT messages for transmission in categories 1,2,3 and 5. Also receives messages in all categories and decodes and processes them. System also handles message matching and bank reconciliations. All automated save for a bit of exception handling when the wrong data is input. Also seamless connectivity with SWIFT Alliance system so the messages go straight out from the back office system and across the SWIFT network with full ACK/NACK processing. Added GPI and LAU to the connectivity process. Did a bit of freelance work a couple of years ago on the MX messages too. Processed about 4 billion messages in 20 years with close to 100% STP. It's all quite do-able in IRIS.

I had similar problems with the digital signature classes provided with Caché solved by extending the classes and adding the missing properties. Once extended you could add and InclusiveNamespace property and populate it with anything you like. You may find that you have to extend the entire digital signature package or even copy the package to a new one so that you can add what you want.