Yeah sorry, I wrote it like that to make it more confusing...
But it's actually not too confusing. A brief explanation:
The first 75%ish, the bit with all the +s, is filling up the elements of the BF array with the ASCII value of all of the letters contained in the sentence. And the second 25%ish is just scrolling to the right location and printing out the letters, hence lots of <>s and .s. During the fill up stage each ASCII value is made using two of it's factors, in an attempt to reduce the number of characters. So each ASCII letter looks like this N+[-<M+>] where N and M are the two factors chosen. For example 32, an ASCII space, is ++++++++[-<++++>], N=8, M=4.
I'm sure this isn't the most character efficient for short sentences, but it might not be too bad for paragraphs.
PS, in analysing that I have noticed there is a pointless extra > at the start.
But it's actually not too confusing. A brief explanation: The first 75%ish, the bit with all the +s, is filling up the elements of the BF array with the ASCII value of all of the letters contained in the sentence. And the second 25%ish is just scrolling to the right location and printing out the letters, hence lots of <>s and .s. During the fill up stage each ASCII value is made using two of it's factors, in an attempt to reduce the number of characters. So each ASCII letter looks like this N+[-<M+>] where N and M are the two factors chosen. For example 32, an ASCII space, is ++++++++[-<++++>], N=8, M=4.
I'm sure this isn't the most character efficient for short sentences, but it might not be too bad for paragraphs.
PS, in analysing that I have noticed there is a pointless extra > at the start.