text:
Print all numbers from -100 to 100 which contain a given digit
Provided a digit between 0 and 9 (inclusive), your function/subroutine should print all numbers between -100 and 100 (inclusive) that contain the given digit.
For example:
Input: 9
Output: -99 -98 -97 -96 -95 -94 -93 -92 -91 -90 -89 -79 -69 -59 -49 -39 -29 -19 -9 9 19 29 39 49 59 69 79 89 90 91 92 93 94 95 96 97 98 99

Rules:

You cannot use strings (in whatever way they are represented in your chosen language) or char arrays. (Except to print the answer to the console.)
You cannot use arrays.

Scoring:
Score = length of subroutine/function (whitespace will not be counted)
The answer with the lowest score wins.
Whitespace will NOT be counted. Please format your code properly!
Some answers are using regular expressions, which may violate the no strings rule, as pointed out by some members. These answers will not be accepted.
Please test your code with 0 before posting.

The given output is either wrong or unclear. Where are -98 ... -91 and 91 ... 98?

Define "use" and "loop".

What @PeterTaylor said. I could just use labels and gotos in C.

Removed the no loops rule.

Does the order of the output matter? Is 9,-9,19,-19,... acceptable?

@Gaffi The order does matter.

A Whitespace answer will score 0. Are you sure you want to do that?

Is a list an array?

@DavidCarraher Functionally, they are both a collection of quantities, so I would consider a list a type of array (though they actually aren't).

If you add the word 'only' after your post heading...It will be a nice challenge !

Is use of regex allowed?  Working with regex means working with strings. Similarly working with lists/collections (and similar structures) is same as working with arrays. The answer from @wallywest here uses regex.  This is the thing that I don't like about questions when they try to prohibit from using string and/or arrays.  People find alternate ways of using them.  And if any answer really does implement correctly, it does not get as many votes as it should just because it looks complicated.

@microbian I thought the same, but due to my lack of knowledge in JavaScript, I did not want to point it out and find out I was wrong. Thanks for the heads up.

Also why from -100 to +100.  Numbers found on negative side are same as in the positive side.  So if you find 19 for 9, you can automatically add -19 in output.

@microbian, an interesting case is 0. we dont want -0 as an answer.

"Whitespace will NOT be counted. Please format your code properly!" isn't a great way of doing this, since whitespace in different languages have different significance. More often, it's just "post an ungolfed/readable version too".

@ace I created an answer in whitespace (needed 4 hours of hard work with this). i think that it scores zero, right?

@Victor Sorry, I'm new here. Didn't know that. It'd be great to see your whitespace answer, as a clever way through the rules, and of course, the winning answer.

The "EDIT" monikers in your question are unnecessary.  Every question comes with a detailed edit history which anyone can review; you can access the edit history for this question here: http://codegolf.stackexchange.com/posts/22975/revisions

Maybe for the future a better way to exclude whitespace from the count without allowing "cheating" would be "insignificant whitespace will not be counted".

What does "no strings" mean exactly? e.g. would having a Python expression x in str(i) count as using a string?

@Claudiu Yes, it does.

How can we do it without strings? In many languages, printing functions only accept strings as arguments.

@JanDvorak Of course, you are allowed to use strings to print the answer to the console. But not for any other purpose.

@duci9y I may suggest that next time you present a question, that you flesh it out in the Sandbox. You mention no strings initially, without mentioning the ban on string functions or regexp. Multiple edits (as I have found out in the past) can piss off other coders...)

not to mention it never specifically says only the numbers containing those characters or how many times they could be printed

@technosaurus You could go on and on. You'd argue that I did not specify if the printed numbers should in roman numerals or arabic, whether they should be printed to a printed or to the console, etc.

Downvote for the arbitrary restriction of not allowing arrays. Makes the challenge so much less fun.

How do Array Programming Languages (APLs) participate? In APL, data is always an array.

@Nᴮᶻ Of course, reasonable exceptions apply.

I am going to close this question as unclear.  Since this challenge was posted the site has leaned much more in favor of requiring concrete observable criteria independent of language features.  Forbidding strings is just not clear by modern standards.  This will not impact anyone's reputation and is not a punishment of any form.

Whitespace, 834 characters (0 if you subtract whitespaces)
Used this interpreter to test it.
This took me some 4 hour of hard work and horrible debugging to create. But it is done!

EDIT: Selectable text provided with HTML tricks. If you copy and paste it from here to some other place, please check if you got exactly [space][tab][linefeed][linefeed][linefeed] at the end with 100 or 101 lines (depending if your editor counts or not a new line if the last one ends with a linefeed).
In the case that you can't use it this way, considering space as S, linefeed as L and tab as T, and breaking lines after the L's, here it is:
SSSTSSSSTSL
SSSTSSSSTSL
TL
TSSSSTSSSSTSL
TTTSSSTTSSSSL
TSSTTTSSSSTSSSSTTL
SSTTTSSSTTL
TTSSSSTSSSSSTL
SSSL
TTSSSSTSSSSTSL
TTTL
TSSTSSTSTTL
SSSTSSSSTSL
TTTSSSTL
TSSTL
TSSTSSTSTTL
L
SSSTSSSTSSL
SSSTSSSSTTL
TTTSL
SSSSTTSSTSSL
TSSTL
TSSTSSSTSTL
SL
SSSTTL
TSSL
L
TTSTSSSTTTL
SSTTL
TSSL
L
SSSTSSSTTTL
SL
SSSSTSSSSTSL
TTTL
TSSTSSTSSSL
SSSTSTSL
TSTSSSSTSSSSTSL
TTTTSSTL
TSSTSSTSSTL
L
SSSTSSTSSSL
SSSTSTSL
TSTTSSSTSSSSTSL
TTTTSSTL
TSSTSSTSSTL
L
SL
STSSTSTSL
L
SSSTSSTSSTL
SSSTSSSSSTL
TTTL
TSSTSSSTTSL
SSSTSSSSSL
TL
SSL
SSSTSSSTTSL
SSSTSSSSSTL
SSSTL
TTSSSSTSSSSTTL
TTTTL
STL
SSSTSSTSTSL
SSSTSSSSTTL
SSSTSSSSTTL
TTTSSSTL
TSSSTTSL
SL
STSSSTSSL
L
SSSTSSSTSTL
SSSTSSSSTSL
TTTL
TSSTSSTTSSL
SSSTSSSSTSL
TTTSSSTL
TSSTL
TSSTSSTTSSL
L
L
L
L
SSSTSSTSTTL
SSTTTSSTSSL
TL
STSSSTSSSSSL
TL
SSL
SL
STSSSTSSL
L
SSSTSSTTSSL
SSSTSSSSSL
TL
SSSSSTTSSTSSL
TL
STL
L
L

+1 exploiting "0 if you subtract whitespaces"

Haha, I learnt a lesson. :P

I never understood this language. Everything seems highly ambiguous to me. How do you know when a number finishes, and the next command begins?

@Cruncher The language is well defined and entirely unambiguous. For your particular question: a number is a series of spaces and tabs, representing the number in binary (space = 0, tab = 1, big-endian binary format) and is terminated by a newline. So you know a number finishes when you reach a newline.

I learnt Whitespace today. http://codegolf.stackexchange.com/a/23216/17886

@TimS. I think it's worth noting that I didn't actually claim that the language was ambiguous. I assumed it to be well-defined, just that in the few minutes I've spent reading on it a few times, it appeared ambiguous to me

I interpret "Whitespace will NOT be counted." to mean this answer is invalid. ;) +1

It would be better if you provide the base64 encoding of the code.

At the end of this answer I added a whitespace precompiler making it easier to do WS programming: http://codegolf.stackexchange.com/questions/20328/c-code-indenter/20773#20773

Should have won if a Popularity Contest :D

@Daniel It actually wins. :)

whitespaces is the only character recognize by this language, thus it must be included :p . +1 btw. I learn new language today. yay

"Whitespace will not be counted" That means this answer (written in whitespace) will be not counted, rendering this invalid :P

Bash+utils - 20
seq -100 100|grep 9

Or 21 bytes if in a script
seq -100 100|grep $1

To run the script:
sh myscript 9

grep isn't bash or sh.  It's another utility!

i have to agree, it is not pure shell/bash :)

Sees question. Makes answer in mind. Sees exact same answer already posted. Darn! +1

I think this is using strings.

@DavidConrad If you look at it that way, everything uses strings. The program source is a string. The terminal uses strings. Etc.

The point is (to me), that it uses substrings of the base-10 number, rather than arithmetic, to determine whether to include it. Seems like skirting the rule to me, but that's just my opinion.

All variables are strings in Bash unless typeset (see Advanced Bash-Scripting Guide: Chapter 4 and Chapter 9 ), but even if you typeset your input is still cast back to string when passed to seq. This answer uses strings and as such is invalid.

Should I delete the answer?

If you use busybox instead of bash, grep and seq are a kind of builtins. busybox's seq doesn't like negative numbers as 1st argument, so it needs to count backwards. seq 100 -1 -100 | grep 9 does the trick on my OpenWrt routers using busybox.

JavaScript 133 - 1 = 132
Surely there couldn't possibly be anything wrong with this version now...?
for(k=prompt(),c=console,j=-100;100>=j;j++)if(i=j,0==j&j==k)c.log(0);else for(;i;)if(h=i%10,h=0>h?-h:h,i=i/10|0,h==k){c.log(j);break}

PROMPT: 2
CONSOLE.LOG:
-92
-82
-72
-62
-52
-42
-32
-29
-28
-27
-26
-25
-24
-23
-22
-21
-20
-12
-2
 2
 12
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 32
 42
 52
 62
 72
 82
 92

CONTROL, using zero
PROMPT: 0
CONSOLE.LOG:
    -100
    -90
    -80
    -70
    -60
    -50
    -40
    -30
    -20
    -10
      0
     10
     20
     30
     40
     50
     60
     70
     80
     90
    100

Even a bit shorter: for(i=-100,r=prompt();101>i;i++)(i+'').match(r)&&console.log(i).

I like this answer (+1), but doesn't it implicitly use strings?

It uses strings because it uses regex.

this does use implicit string conversion

Actually chaps, no it doesn't... alert(RegExp(9).test(99)) which is based on numbers only, also returns true due to JavaScript's loosely based typing system. The functions work with the numbers as though they are strings but are still numbers...
If you change the code to read r=RegExp(x=+prompt());for(i=-100;101>i;i++)r.test(i)&&console.log(i);console.log(typeof(x));console.log(typeof(i)) and executed it, the final typeof response would show x and i as being numbers... Ergo, I'm not using strings...

@VoronoiPotato A string operator that is using a number as an argument... JavaScript does type conversion on the fly, who am I to tell JavaScript how and when to do it?

This answer was given before the edit stating no regExp... Sorry about that... I've since edited it...

@VoronoiPotato printing is also a string op. But we are obviously required to do that.

@Claudiu I'm converting numbers not strings...

@WallyWest: You're using strings. (1).toString() converts 1 into a Number, and then calls its toString method, which returns a string, and then you call .search on that string which converts it to a String object and calls the .search method of the String object. Just because the string is only a temporary variable doesn't mean you aren't using strings.

@Claudiu Are you serious? You're complaining because I'm chaining string conversion methods onto a number to generate a string, which is perfectly valid, as opposed to using a direct string. "I'm not allowed to use strings", but the rules do not say that I cannot use string conversion methods, including RegExp. The whole program is a string. I have to use console.log which outputs (surprise surprise) in the form of a string... Do you plan on chastising me on that too? How about you provide a solution which abides by your interpretation of the rules, and then perhaps we'll stand up & listen.

@WallyWest: Chill yo. I asked the OP what he meant by "no strings", but I thought he meant you should use number functions (like modulo and division) to check for inclusion, instead of converting to a string and using string contain/search functions.

@WallyWest: Ah see now the OP has spoken. converting to a string does count as using a string - this answer is invalid unfortunately!

@Claudiu Indeed, invalid answer.

@duci9y You present me with a conundrum... Hopefully, my NEW answer is more suitable... No arrays, no strings, no string functions or methods, save for the output method...

GolfScript [24 bytes]
`:x;201,{100-}%{`x?-1>},

Description:
`:x;             - save input value to variable 'x' and remove from the stack
201,{100-}%      - create range from -100 to 100
{`x?-1>},        - filter the range by "index-of" condition

DEMO: http://golfscript.apphb.com/?c=MwoKYDp4OzIwMSx7MTAwLX0le2B4Py0xPn0sYA%3D%3D

this uses strings, though

It also uses arrays: 201, creates an array containing 0 to 200.

Ruby: 92 characters
s=gets.to_i
$><<(-100..100).select{|n|a=n.abs;loop{break""if a%10==s;break if 0==a/=10}}*" "

Readable version:
searchfor = gets.to_i
$><< (-100..100).select { |number|
  absnumber = number.abs
  loop {
    break "" if absnumber % 10 ==s
    break if 0 == absnumber /= 10
  }
} * " "

Sample run:
bash-4.2$ ruby -e 's=gets.to_i;$><<(-100..100).select{|n|a=n.abs;loop{break""if a%10==s;break if 0==a/=10}}*" "' <<< 9
-99 -98 -97 -96 -95 -94 -93 -92 -91 -90 -89 -79 -69 -59 -49 -39 -29 -19 -9 9 19 29 39 49 59 69 79 89 90 91 92 93 94 95 96 97 98 99

Test run:
bash-4.2$ for i in {0..9}; do diff -w <(ruby -e 's=gets.to_i;$><<(-100..100).select{|n|a=n.abs;loop{break""if a%10==s;break if 0==a/=10}}*" "' <<< $i) <(seq -100 100|grep $i|tr \\n \ ) > /dev/null; echo "$i : $?"; done
0 : 0
1 : 0
2 : 0
3 : 0
4 : 0
5 : 0
6 : 0
7 : 0
8 : 0
9 : 0

Fails the 0 test.

Oops. You're right, @duci9y. Corrected.

bash 55 49 characters:
(not counting whitespace around &&)
for i in {-100..100}
do
  [[ $i =~ $1 ]] && echo $i
done

Executing it by saying:
bash filename 9

would produce:
-99
-98
-97
-96
-95
-94
-93
-92
-91
-90
-89
-79
-69
-59
-49
-39
-29
-19
-9
9
19
29
39
49
59
69
79
89
90
91
92
93
94
95
96
97
98
99

You can replace " && " with "&&" for two extra points.  Also I count one less char if I drop the trailing newline.

Scratch that - I just saw the new rule: "EDIT: Whitespace will NOT be counted. Please format your code properly!".  So I guess you just get to count all non-whitespace characters?

Then you can convert the ;s to newlines, and save 2 points.

K - 45 char
Not winning any awards, but K golfing is underrepresented. K doesn't get any prettier with proper spacing, so I'll just leave this as is, because K gets very picky about which whitespace is important and which isn't.
{|a@&x _in'@[10_vs'_ _abs a:100-!201;100;0,]}

Explained:

a:100-!201 - Make a list from 0 to 200 inclusive, then subtract it from 100. Now we have the numbers from -100 to 100 inclusive, but backwards from the question's specs. We can always fix that later, so for now we'll just assign this to a.
_ _abs - Take the floor of the absolute value of these numbers, because for whatever reason K thinks that _abs should give floating point results. Thankfully, flooring them turns them back into integers.
10_vs' - Expand each (') integer as a base 10 number (_vs stands for "vector from scalar"). Note that we did not have to use the Each operator ' on the functions above because they operate on atoms.
@[...;100;0,] - Amend the item in our list at index 100 (an empty list, which is the result of expanding 0 into base 10) by the function 0,, which prepends a zero to the front. Without this correction, this function will fail on the input 0.
&x in' - Now, return the indices (&) where x is a digit in (_in) each (') of the expansions we so carefully constructed above.
|a@ - Finally, use these indices to index a, and reverse the list into the right order.

Usage is obvious, though good luck getting your hands on a K interpreter. (There's an open source implementation at on Github that you can compile.)
  {|a@&x _in'@[10_vs'_ _abs a:100-!201;100;0,]} 0
-100 -90 -80 -70 -60 -50 -40 -30 -20 -10 0 10 20 30 40 50 60 70 80 90 100
  {|a@&x _in'@[10_vs'_ _abs a:100-!201;100;0,]} 5
-95 -85 -75 -65 -59 -58 -57 -56 -55 -54 -53 -52 -51 -50 -45 -35 -25 -15 -5 5 15 25 35 45 50 51 52 53 54 55 56 57 58 59 65 75 85 95

I wonder if languages like K have any productive uses outside of scenarios like this question. Do they?

@duci9y Actually, K in particular has found itself a niche market on Wall Street handling high-speed, high-volume transactions, using its native database software KDB. The close relative J also finds use, though more in corporate and academic contexts.

That's great! I was of the belief that esoteric languages are just for fun. Good to see that's not the case.

Doesn't the description say "You cannot use arrays"?

C - 104 107 114 characters - 0 = 104 107 114
a,b;main(i){i=getchar()-48;for(a=-100;a<101;a++){for(b=a;a&&abs(a%10)!=i;a/=10);if(a|!i&!b)printf("%i ",b);a=b;}}

Ungolfed:
#include <stdio.h>

int a, b;

int main(int i) {
    i = getchar() - '0';
    for( a = -100 ; a < 101 ; a++ ) {
        for( b = a ; a && abs(a % 10) != i ; a /= 10 );
        if( a | !i & !b )
            printf("%i ", b);
        a = b;
    }
}

Nice. Could you also post an ungolfed version with proper whitespace please?

@duci9y Added it.

Won't this output the results out of order? (Spec has been updated to state that order matters.)

@Gaffi Well then. I shall edit the code.

Fails to notice that 0 contains 0.

I think the condition of the if-clause should be a | !i & !b

@konjac true, and is so in my ungolfed file. I'm wondering why it wasn't pasted correctly...

PHP 67 bytes:
for($i=-100;$i<101;++$i)if(strpos($i,$_GET[n])!==!1)echo$i,PHP_EOL;

Yes, there is a 'strpos' call, but I'm using only numbers!
Here is a 'ungolfed' version:
for($i=-100;$i<101;++$i)
{
    if(strpos($i,$_GET[n])!==false)
    {
        echo $i,PHP_EOL;
    }
}

For this to work, you can test it here: http://writecodeonline.com/php/
Just remember to add $_GET[n]='<number>'; to the beginning of the code.
Or, on a lamp or xampp server, you can create a page and then access it on the browser, with the parameter ?n=<number> after the filename.

This looks like implicit string conversion, violating the no strings rule.

Not my fault. I didn't made the language. I used what I have. Besides, the conversion is made internally. There is nothing in the code dealing with strings (except the output).

The way I read the rule, you have to deal with the numbers arithmetically. Treating them as strings, whether by you or by the language or library, is off limits. But almost everyone else is skirting the rule in a similar way.

Well, everyone wants to get it done the smallest way. And the smallest is treating the numbers as strings (internally without implicit conversion to string in the code).

My first attempt here, so maybe I am doing some things wrong, please excuse that ;)
So, I wasn't sure if I had to add the whole class or just the logic within.
Java  - 199 characters
intx=System.in.read()-48;for(inti=-100;i<101;i++){if((i<10&&i==-x)||(i>-10&&i==x)||(i<-9&&((i/100==x&&i<-99)||i%10==-x||i/10==-x))||(i>9&&((i/100==x&&i>99)||i%10==x||i/10==x)))System.out.println(i);}

Here a more readable form:
int x = System.in.read() - 48;
for(int i = -100; i < 101; i++) {

    if((i < 10 && i == -x) || (i > -10 && i == x)
        || (i < -9 && ((i / 100 == x && i < -99 ) || i % 10 == -x || i / 10 == -x))
        || (i > 9 && ((i / 100 == x && i > 99) || i % 10 == x || i / 10 == x)))

        System.out.println(i);

}

I guess the basic idea was not that bad, but needed too much exceptions, to finally work out for all cases... :/

Sorry, doesn't work with 0 :(

Aw, sure, last addition I made messed that up.
Updated Code, so I'm down to 199 now.
Thanks for pointing that out!

Didn't realize that one :D
Too much coding in native language in the past days I guess ;)

You removed every single space in your compacted version... wouldn't that cause an error? Example: Your first 4 characters: intx... shouldn't it be: int x?

Mathematica 28
Sorry, I just couldn't resist.
:)
The instructions are:
"Provided a digit between 0 and 9 (inclusive), your function/subroutine should print all numbers between -100 and 100 (inclusive) that contain the given digit."

The following prints all such numbers in order.
f@n_ :=Print/@Range[-100,100]

As a special bonus, it prints those numbers in the same range that do not contain the given digit.  :)

But this do not use n as a filter

@Marta, Yes, I subverted the intent of the puzzle (which is why I said "Sorry"), while technically providing an appropriate answer.

R 87 93
Here's an improvement:
a=scan();r=-100:100;s=abs(r);r[(!a&!r%%10)|a&(a==s%%10|a==floor(s/10)|a==floor(s/100))]

(Potentially) More readable, with notes:
a=scan() # take user input of selected digit
r=-100:100 # define our scanning range
s=abs(r) # copy the range as the absolute value for proper floor() calculation
#r[<criteria>] is functionally the same as subset(r,<criteria>)
r[ # when any of the criteria below are met, use that value from the range
    (!a & !r%%10) # case when input is 0, !a is evaluated as "a when a<>0 == true"
    | a & # all other digits below
    a==s%%10
    |
    a==floor(s/10)
    |
    a==floor(s/100)
    ] # R does not require a print command, so this as-is will display the corresponding values

Why no whitespace?

@duci9y Because none is necessary. I'll format to be more readable and add that as well, just for good measure.

Doesn't work with 0.

@duci9y It does not fail. I made one small change from the original post (+2 chars), as the original post DID fail on 0. Did you try with this most recent version? I'm using R 3.0.1.

@duci9y To be clear, I meant did you use this on the most recent version of my code. My version of R should be close enough to the most recent version to not matter. However, I did not test at all on any 2.* versions.

Sorry, I tested this code while you were making your edit. It works. Could you edit it a little bit so it allows me to upvote?

@duci9y Updated.

Javascript 116
   a = 0
        for(i=-100;101>i;i++){
        m=Math
        f=m.floor
        j = m.abs(i)
        if((j>10&&f(j/10)==a)||j-f(j/10)*10==a||j/100==a){

             console.log(i)

        }
        }

Prolog: 75
f(D) :-
  between(-100,100,N) ,
  number_chars(N,Ds) ,
  member(D,Ds) ,
  writeln(N) ,
  fail
  .

How do you call this? I saved it in a test.pl file, started swipl, entered consult('test') and then entered f(9). But it only returned false.

C answer in 98 characters
This is one of the sexiest things I've ever coded
main()
{
    int t=getchar()-48,i=100,j=-i;
    while ((i=t-i%10?i/10:!printf("%d\n",j)) || (i=++j<0?-j:j)<101  );
}

The older version, with 104 non-whitespace chars:
int main()
{
    int t=getchar()-48,i,j=-101;
    while(++j<101)
    {
        i=j<0?-j:j;
        while(i = t-i%10?i/10:!printf("%d\n",j));
    }
}

"Works for me" using GCC and CLANG.

Awesome! Welcome to Code Golf.

GW Basic: 107 characters excluding whitespace
1 input n
2 for i=-100 to 100
3 j=abs(i):a=j mod 10
4 if a=n then 8
5 b=j\10
6 if (b=n) and b then 8
7 if (b<10) or n<>1 then 9
8 print i
9 next

Using single digits for the line numbers helps and stripping the whitespace means there isn't really a need for having multiple statements on a line more than once to keep numbers reaching 10.

GNU coreutils (44)
read N
seq -100 100 | grep $N | tr '\n' ' '
echo

where tr is used to convert newlines to spaces, and echo provides one final newline.
$ bash ./script
9
-99 -98 -97 -96 -95 -94 -93 -92 -91 -90 -89 -79 -69 -59 -49 -39 -29 -19 -9 9 19 29 39 49 59 69 79 89 90 91 92 93 94 95 96 97 98 99

This isn't much different from an existing answer.

Javascript - 108
Not sure if existing javascript answer will be taken into consideration because it uses regex, so I created one without it:
for(x=+prompt(i=-100);i<101;i++)if((j=i<0?-i:i)&&j%10==x||((j/100==x||(0|j/10)==x)&&x)||j==x)console.log(i)

Can also be shortened to 101 if x variable is put directly, like:
for(x=5,i=-100;i<101;i++)if((j=i<0?-i:i)&&j%10==x||((j/100==x||(0|j/10)==x)&&x)||j==x)console.log(i)

It basically checks if absolute values of div or mod operations are equal to the digit (which also works for 100).

If x=1, this fails to print -100 or 100.

Should be fixed now

1 works nicely, but now 0 prints 1, 2, 3... Sorry to be a troublemaker here.

Well if you put x=0; it works ok, the problem was that prompt() returns string, so I added *1 and it hopefully should be ok now. THank you for your suggestions

parseInt implies string too.

I was referring to first assignment, x=prompt()*1 which before was x=prompt(). In the first case if (x) returns false, while in the seconds if (x) returns true, for the same value written in prompt window (0), because in first case it is actually 0 which evaluates to false, while in second case it is "0" which evaluates to true. This is important for the last part of if, which in my javascript is &&x, which depends on prompt() being integer.

parseInt(j/10) can be replaced with (0|j/10) which is both shorter and avoids the implicit strings. The (unavoidable) string-to-number conversion in prompt()*1 cannot be shortened as +prompt(). (Or shorter still, change the function to start for(x=+prompt(i=-100);....

You can save 1 char changing i=-100;i<101;i++) to i=-101;++i<101;)

You can also save another putting x=5 out and above for

And maybe -3 changing (j=i<0?-i:i)&&j%10==x to (j=i<0?-i:i)%10==x

J - 27 chars
All whitespace is safely removable, meaning 27 characters. Negative numbers in output will have _ for a negative sign: this is just the way J writes its negative numbers.
((e. 10 #.^:_1 |)"0 # ]) & (i: 100)

Explained:

V & (i: 100) - Bind (&) the set of numbers from -100 to 100 inclusive (i:100) as the right argument of the main verb (V). The single argument of the entire verb gets piped into the left side.
(U"0 # ]) - Use the result of the verb U over each number from the right argument ("0) to select (#) items from the right argument (]).
(e. 10 #.^:_1 |) - Given the digit to test for as the left argument and the number to check as the right argument, expand in base 10 (10 #.^:_1) the absolute value of the number (|), and check if the digit is an element of that expansion (e.).

Usage:
   ((e. 10 #.^:_1 |)"0 # ]) & (i: 100) 0
_100 _90 _80 _70 _60 _50 _40 _30 _20 _10 0 10 20 30 40 50 60 70 80 90 100
   ((e. 10 #.^:_1 |)"0 # ]) & (i: 100) 5
_95 _85 _75 _65 _59 _58 _57 _56 _55 _54 _53 _52 _51 _50 _45 _35 _25 _15 _5 5 15 25 35 45 50 51 52 53 54 55 56 57 58 59 65 75 85 95

The underscore-for-negative convention in J always bothered me -- it wouldn't be so bad if it used a minus symbol in output (without messing with the format verb).

The underscore is J's unambiguous (and, I would argue, elegant and APLish) way of differentiating negative signs from the verb - Negate/Minus. K lets you use the negative sign "naturally" in numbers, and incidentally K came out an arcane syntactic clusterfuck. If it's really irking you, work in your choice of ;8!:1, '4.0'8!:2, or '-'I.@:=&'_'}":, costing 7, 11, and 16 chars respectively to make the resulting program a function instead of an expression, by my count.

I know what it is, but it's a bit bothersome all the same when it comes to I/O. It'd be nicer if it produced minus signs by default when printing numbers, rather than printing underscores presumably in case someone wanted to eval the resulting string.

Groovy, 127
def x = args[0].toInteger()
for (k in -100..100)
    if (k == x)
        print " ${k}"
    else
        for (n = Math.abs(k); n > 0; n = (int) n / 10)
            if (n % 10 == x) {
                print " ${k}"
                break
            }

No strings (except to output the spaces between the numbers), no char arrays or other arrays, no regexes. Tested with 0. Output:
-100 -90 -80 -70 -60 -50 -40 -30 -20 -10 0 10 20 30 40 50 60 70 80 90 100

And I discovered a new language today. :)

GROOVY, 71
f={z->
  _=10
  (-_*_.._*_).grep {
    a=it.abs()
    b=a%_==z
    a<_?b:b||(int)(a/_)%_==z
  }
}

println f(0)
println f(9)

Results in
[-100, -90, -80, -70, -60, -50, -40, -30, -20, -10, 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
[-99, -98, -97, -96, -95, -94, -93, -92, -91, -90, -89, -79, -69, -59, -49, -39, -29, -19, -9, 9, 19, 29, 39, 49, 59, 69, 79, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]

Haskell, 86 75 (78 with necessary whitespaces)
f 0=[-100,-90..100]
f d=[b|b<-[-100..100],abs(b`quot`10)==d||abs(b`rem`10)==d]

Ungolfed:
f dig =
  if dig == 0
    then [-100, 90 .. 100]
    else [num | num <- [-100 .. 100], abs (num `quot` 10) == d || abs (num `rem` 10) == d]

If you use a two line definition with pattern matching, i.e. a 0=[-100.... and a d=[b|b<-.... you can get rid of the if then else and save a few bytes.

Javascript 96
Using bitwise or:
b=Math.abs;
a=prompt();
for(i=-100;i<101;)
    if(!(b(i++/10)^a && b(i%10)^a)||b(i)/a==100)  console.log(i)

VBA 121
(no whitespace or Sub definition counted):
Sub t(d)
For n = -100 To 100
m = Abs(n)
o = o & IIf(d = 0, IIf(d = n Mod 10, " " & n, ""), IIf(d = n Or d = m Mod 10 Or d = Int(m / 10) Or d = Int(m / 100), " " & n, ""))
Next
MsgBox o
End Sub

Does this work with 0?

@duci9y Yes. Specifically because: IIf(d = 0, IIf(d = n Mod 10, " " & n, "")

Python - 172 chars
def f(x,y,z):
    if x%10==y or (x>9 and x/10==y) or (x==100 and y==1):
        print z
def g(x,y):
    f(abs(x),y,x)
    if x<100:
        g(x+1,y)
def h(y):
    g(-100,y)

To test within Python:
>>> h(4)
-94
-84
-74
...
-49
-48
...

perl, 117 with non-meaningful whitespace chars removed
I think you were looking for something more like this. Reads from stdin, outputs one line per match. No regexps, arrays (or sets or hashes or anything else that is an array under the covers) or strings, implicit or otherwise, except the strings passed to print:
chomp($x=<>); for($y=-100;$y<101;++$y) { $a=abs $y; print "$y " if $a % 10 == $x || $a > 9 && int( $a/10 ) == $x || $a==100 && $x==1}; print "\n"

eg:
ski@anito:~$ echo 0 | perl -e 'chomp($x=<>); for($y=-100;$y<101;++$y) { $a=abs $y; print "$y " if $a % 10 == $x || $a > 9 && int( $a/10 ) == $x || $a==100 && $x==1}; print "\n"'
-100 -90 -80 -70 -60 -50 -40 -30 -20 -10 0 10 20 30 40 50 60 70 80 90 100

ski@anito:~$ echo 1 | perl -e 'chomp($x=<>); for($y=-100;$y<101;++$y) { $a=abs $y; print "$y " if $a % 10 == $x || $a > 9 && int( $a/10 ) == $x || $a==100 && $x==1}; print "\n"'
-100 -91 -81 -71 -61 -51 -41 -31 -21 -19 -18 -17 -16 -15 -14 -13 -12 -11 -10 -1 1 10 11 12 13 14 15 16 17 18 19 21 31 41 51 61 71 81 91 100

ski@anito:~$ echo 2 | perl -e 'chomp($x=<>); for($y=-100;$y<101;++$y) { $a=abs $y; print "$y " if $a % 10 == $x || $a > 9 && int( $a/10 ) == $x || $a==100 && $x==1}; print "\n"'
-92 -82 -72 -62 -52 -42 -32 -29 -28 -27 -26 -25 -24 -23 -22 -21 -20 -12 -2 2 12 20 21 22 23 24 25 26 27 28 29 32 42 52 62 72 82 92

F# 87 92 - 7
let f n = {-100..100}
|>Seq.filter(fun x->abs x%10=n||abs x/10=n&&n>0)
|>Seq.iter(printf"%d ")

added 5 chars because 0 wasn't handled correctly. (Single digit values would all be returned.)

Mathematica - 65 chars
f@n_:=If[IntegerDigits@#~MemberQ~n,Print@#]&~Scan~Range[-100,100]

Can you point me to a webpage that explains the ~ operator?

Hi @MichaelStern, it's called infix form. Here is Wolfram page explain it.

This is my first time playing code golf.  This looks pretty interesting.  I can't win, but I tried and wanted to show what I could do.
Python: 104 (89 if I can mulligan the import) - if the results must be printed exactly as shown in the example
from math import *

def g(x):
    t = 10
    p = lambda i: x == i % t or i >= t and p(i / t)
    for i in range(-100, 101):
        if p(abs(i)):
            print i,
    print
# g(0)
# -100 -90 -80 -70 -60 -50 -40 -30 -20 -10 0 10 20 30 40 50 60 70 80 90 100

Python: 71 - if the output can be done outside the function and the only restriction for the output is that no violating numbers are printed
f = lambda x: [(-i, i) for i in range(101) for j in (10, 100) if i % j == x or i >= j and i / j == x]
# print f(0)
# [(0, 0), (0, 0), (-10, 10), (-20, 20), (-30, 30), (-40, 40), (-50, 50), (-60, 60), (-70, 70), (-80, 80), (-90, 90), (-100, 100), (-100, 100)]

JavaScript 125 char
Sorry for the several edits I've been having troubles doing this from my phone :)
function c(n,i){o=i||0;h=100;j=o-h;f=Math.abs(j);m=f/10|0;if((m==n&&m!=0)||n==f%10||f/h==n)console.log(j);if(o<h*2)c(n,o+1);}

Powershell - 20 17 chars
To match the digit 9 (for example):
-100..100-match 9

EDIT: found I could remove brackets and one piece of whitespace.

Actually it's 16 characters, rules say whitespace doesn't count.

Dogelang, 42 non-whitespace characters
f=n->for i in(-100..101)=>if n in str i=>print i

Same as my Python solution, just converted to dogelang.

Python 2 (70)
def f(i):
 n=-100
 while n<101:
  m=abs(n)
  if i in [m%10]+[m/10,m>99]*i: print n,
  n+=1

For i=0 to work, the *i makes the m/10 condition not be checked. When i=1, we get m=100 to be accepted by adding the condition m>99, which evaluates to True which equals 1.

Ruby
def f(n);-100.upto(100){|i|print"#{i} "if(i.abs/10==n||i.abs%10==n)};end

C#
IEnumerable<int> f(int a)
{
    yield a;
    yield -a;
    for(i = 1; i < 10; i++)
    {
        yield (i * 10) + a;
        yield (i * -10) - a
    }

    if (a != 1) yield break;
    yield 100;
    yield -100;
}

Because it is a [tag:code-golf], please include the character count of your code in your answer.

Python, 91 (or possibly 90)
f = lambda x: filter(lambda y: x in(abs(y) % 10, abs(y)/10, abs(y)/100) if x else y%10 < 1, xrange(-100,101))

Examples:
>>> f(0)
[-100, -90, -80, -70, -60, -50, -40, -30, -20, -10, 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
>>> f(1)
[-100, -91, -81, -71, -61, -51, -41, -31, -21, -19, -18, -17, -16, -15, -14, -13, -12, -11, -10, -1, 1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 31, 41, 51, 61, 71, 81, 91, 100]

If lists do not count as arrays, we can get rid of the x in xrange and maintain correctness for a total score of 90. If we remove unnecessary whitespace, the total length becomes 97 (or 96).

C++ - 235 char
First post on here, gave it a shot
#include <iostream>
#include <string>
using namespace std;
int main()
{
    int input;
    cin >> input;
    std::string is = std::to_string(input);
    for(int i = -100; i < 101; i++){
        std::string os = std::to_string(i);
        if(os.find(is) != std::string::npos)
            cout << os << " ";
    }
}

Welcome to PPCG!  Seems you might have missed the rule "You cannot use strings or char arrays." :)

Ah I missed that 's' on Strings, thought it meant no string arrays, oh well.

Ruby - 75 characters
Emphasizing clarity over cleverness:
def f(n)
  puts (-100..100).select {|x| x.abs % 10 == n || x.abs / 10 == n && n > 0}.join(" ")
end

Fortran 95: 90 characters
n=9
do i=0,9
print*,10*i+n,-10*i-n
if(n>0)print*,10*n+i,-10*n-i
enddo
if(n<2)print*,100,-100
end

Note: it sometimes outputs a same number twice, but the rules say nothing about this being illegal

I think the output is not in the right order.

but where does it say in the rules it should be ordered?

@gilberto.agostinho.f It doesn't.  In fact it doesn't even say only the numbers containing that digit or how many times they can be printed.

LOLCODE: 364 characters (without whitespace)
HAI
I HAS A N ITZ 1
I HAS A VAR ITZ 0
I HAS A I
I HAS A J
IM IN YR LOOP
  UPZ VAR!!1
  I R PRODUKT OF 10 AN VAR
  I R SUM OF I AN N
  J R DIFF OF 0 AN I
  VISIBLE I
  VISIBLE J
  N BIGR THAN 0, O RLY?
    YA RLY
      I R PRODUKT OF 10 AN N
      I R SUM OF I AN VAR
      J R DIFF OF 0 AN I
      VISIBLE I
      VISIBLE J
  OIC
  IZ VAR BIGR THAN 8?, GTFO, KTHX
KTHX
N SMALLR THAN 2, O RLY?
  YA RLY
    VISIBLE "100"
    VISIBLE "-100"
OIC
KTHXBAI

Similar to my Fortran 95 code, it sometimes outputs a same number twice, but the rules say nothing about this being illegal. Numbers are NOT output in order, bu the rules also say nothing about it.
You can run this code at: http://asgaard.co.uk/misc/loljs/#

Scala 123 characters
This works but doesn't scale to use larger numbers.
def a(n:Int) {
    for (x<- -100 until 100) {
        var y=x/10
        var z=x-((x/10) * 10)
        if (x==n||(y==n&&n>0)||z==n){println(x)}
    }
}

Ruby - 59 chars
n=gets.chomp;$><<(-100..100).select{|x|x.to_s.include?(n)}

Ex:
1.9.3p448 :046 >   n=gets;$><<(-100..100).select{|x|x.to_s.include?(n[0])}
9
[-99, -98, -97, -96, -95, -94, -93, -92, -91, -90, -89, -79, -69, -59, -49, -39, -29, -19, -9, 9, 19, 29, 39, 49, 59, 69, 79, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99] => #<IO:<STDOUT>>
1.9.3p448 :047 >
1.9.3p448 :048 >
1.9.3p448 :049 >   n=gets;$><<(-100..100).select{|x|x.to_s.include?(n[0])}
0
[-100, -90, -80, -70, -60, -50, -40, -30, -20, -10, 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100] => #<IO:<STDOUT>>
1.9.3p448 :050 >
1.9.3p448 :051 >

R - 71 69 chars
z = -100:100
j = abs(z)
h = function(x)
   z[j %% 10 == x | j > 9 & x == j %/% 10 %% 10 | x & j > 98 + x]

     > h(0)
     [1] -100  -90  -80  -70  -60  -50  -40  -30  -20  -10    0   10   20   30   40   50   60   70
    [19]   80   90  100
    > h(1)
     [1] -100  -91  -81  -71  -61  -51  -41  -31  -21  -19  -18  -17  -16  -15  -14  -13  -12  -11
    [19]  -10   -1    1   10   11   12   13   14   15   16   17   18   19   21   31   41   51   61
    [37]   71   81   91  100
    > h(2)
     [1] -92 -82 -72 -62 -52 -42 -32 -29 -28 -27 -26 -25 -24 -23 -22 -21 -20 -12  -2   2  12  20  21
    [24]  22  23  24  25  26  27  28  29  32  42  52  62  72  82  92

Javascript (ECMAScript 6) - 83 Characters (excluding whitespace)
n=prompt()
s=''
f=x=>x%10==n|(x>9?f(x/10|0):0)
for(a=-1;a++<100;)
    if(f(a))
        s+=' '+a+' -'+a

Inputting 0 outputs:
" 0 -0 10 -10 20 -20 30 -30 40 -40 50 -50 60 -60 70 -70 80 -80 90 -90 100 -100"

Inputting 1 outputs:
" 1 -1 10 -10 11 -11 12 -12 13 -13 14 -14 15 -15 16 -16 17 -17 18 -18 19 -19 21 -21 31 -31 41 -41 51 -51 61 -61 71 -71 81 -81 91 -91 100 -100"

You have strings in your answer plus @duci9y said in the comments of the challenge that it has to be in order.

haskell, ghci: 75 characters
Prelude> let i='9'
Prelude> [x | x <- [-100..100], head (show x) == i || last (show x) == i]
[-99,-89,-79,-69,-59,-49,-39,-29,-19,-9,9,19,29,39,49,59,69,79,89,90,91,92,93,94,95,96,97,98,99]

It's a basic list comprehension that gets the range -100 to 100, then ( not sure if this was against the rules ) turns x into a char list and grabs the head and tail and compares it to i, which is the input, this acts as a filter for the range.

Could you perhaps add an in-answer explanation? This way, haskell ignorant people can know what you are doing.

@Quincunx I added an explanation, I hope it helps

Julia, 46
g(x)=filter((y)->x in digits(abs(y)),-100:100)
julia> g(9)'
1x38 Array{Int64,2}:
-99  -98  -97  -96  -95  -94  -93  …  91  92  93  94  95  96  97  98  99

Or 54 if I'm not allowed to return an array, seems like a silly restriction.
g(x)=(for y=-100:100;x in digits(abs(y))&&println(y);end)

Java 123
N(int n){for(int i=-100;i<101;i++){int x=Math.abs(i);if(x%10==n||x>9&&x/10%10==n||x>99&&x/100%10==n)System.out.print(i+" ");}}

Since the question only asks for a function and not a whole program this should do.
Full program:
class N
{
    N(int n)
    {
        for(int i=-100;i<101;i++)
        {
            int x=Math.abs(i);
            if( x % 10 == n || x > 9 && x / 10 % 10 == n || x > 99 && x / 100 % 10 == n )
            System.out.print(i + " ");
        }
    }

    public static void main(String[] a)
    {
        N n = new N(Integer.parseInt(a[0]));
    }
}

Haskell, 155 124
That is, with only non-essential whitespace removed, everything else felt like cheating. The other Haskell answer broke both rules, so I decided to roll my own solution!
You didn't specify the order of the output, so I didn't to it in ascending order. I basically jumped to the relevant points on the number line, added either 1 or 10 ten times and printed each number.

t=(+10)
p=print
g x n f
 |n<10=p x>>p(-x)>>g(f x)(n+1)f
 |True=return()
f 0=g(-100)0 t>>p 0
f n=g(-10*n-9)0(+1)>>g(-90-n)0 t

Call like this:
λ> f 4
-49
49
-48
48
-47
47
-46
46
-45
45
-44
44
-43
43
-42
42
-41
41
-40
40
-94
94
-84
84
-74
74
-64
64
-54
54
-44
44
-34
34
-24
24
-14
14
-4
4

Javascript
function a(b){for(i=-100;i<=100;i++){if((i+'').indexOf(b)>-1){console.log(i)}}}

Usage:
> a(3)
-93
-83
-73
-63
-53
-43
-39
-38
-37
-36
-35
-34
-33
-32
-31
-30
-23
-13
-3
3
13
23
30
31
32
33
34
35
36
37
38
39
43
53
63
73
83
93

C, 99 (or 46)
main(i,j){for(j=getchar()-48,i=101;i;)if(--i%10==j||i/10==j||(j<i&&i/10==j))printf("%d %d ",i,-i);}

results (0 twice , but that was not in the parameters):
100 -100 90 -90 80 -80 70 -70 60 -60 50 -50 40 -40 30 -30 20 -20 10 -10 0 0

but the question says all the numbers... not only the numbers, so you can just print all of them
main(i){for(i=101;i--;)printf("%d %d ",i,-i);}

results:
100 -100 99 -99 98 -98 97 -97 96 -96 95 -95 94 -94 93 -93 92 -92 91 -91 90 -90 89 -89 88 -88 87 -87 86 -86 85 -85 84 -84 83 -83 82 -82 81 -81 80 -80 79 -79 78 -78 77 -77 76 -76 75 -75 74 -74 73 -73 72 -72 71 -71 70 -70 69 -69 68 -68 67 -67 66 -66 65 -65 64 -64 63 -63 62 -62 61 -61 60 -60 59 -59 58 -58 57 -57 56 -56 55 -55 54 -54 53 -53 52 -52 51 -51 50 -50 49 -49 48 -48 47 -47 46 -46 45 -45 44 -44 43 -43 42 -42 41 -41 40 -40 39 -39 38 -38 37 -37 36 -36 35 -35 34 -34 33 -33 32 -32 31 -31 30 -30 29 -29 28 -28 27 -27 26 -26 25 -25 24 -24 23 -23 22 -22 21 -21 20 -20 19 -19 18 -18 17 -17 16 -16 15 -15 14 -14 13 -13 12 -12 11 -11 10 -10 9 -9 8 -8 7 -7 6 -6 5 -5 4 -4 3 -3 2 -2 1 -1 0 0

Python2 - 54 chars
def f(s):
    for i in range(-100, 100):
        if str(s) in str(i):
            print i,

Example:
Python 2.7.9 (default, Dec 11 2014, 04:42:00)
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> def f(s):
...     for i in range(-100, 100):
...         if str(s) in str(i):
...             print i,
...
>>> f(0)
-100 -90 -80 -70 -60 -50 -40 -30 -20 -10 0 10 20 30 40 50 60 70 80 90

After removing all white spaces, we end up with these 54 chars:
deff(s):foriinrange(-100,100):ifstr(s)instr(i):printi,

Scala (97)
def a(b:Int)=for(n←-100 to 100){val m=n.abs;if(b>0&&(m/100==b||m/10==b)||m-m/10*10==b)println(n)}

Ungolfed
def a(b:Int)=
    for(n <- -100 to 100){
        val m=n.abs;
        if((b > 0 && (m/100==b || m/10==b)) || m-((m / 10) * 10) == b) {
            println(n)
        }
    }

Excel VBA, 112 Chars
Sub a(n)
    For i = -100 To 100
        j = Abs(i)
        s = IIf(n * (n = j Mod 10 Or n = Int(j / 10) Or n = Int(j / 100)) Or n = i Mod 10, s & " " & i, s)
    Next
    Debug.? s
End Sub

Traditional PPCG Format, 132 Bytes
Sub a(n):For i=-100To 100:j=Abs(i):s=IIf(n*(n=j Mod 10 Or n=Int(j/10)Or n=Int(j/100))Or n=i Mod 10,s &" "&i,s):Next:Debug.?s:End Sub

note: +5 for : newlines in PPCG format
Old Version, 99 Chars (Non-Competing)
Breaks rule against using strings
Sub a(n$)
    For i = -100 To 100
        j = Abs(i)
        s = IIf(n * (n = j Mod 10 Or n = Left(j, 1)) Or n = i Mod 10, s & " " & i, s)
    Next
    Debug.?s
End Sub

Traditional PPCG Format, 118 Bytes
Sub a(n$):For i=-100To 100:j=Abs(i):s=IIf(n*(n=j Mod 10 Or n=Left(j,1))Or n=i Mod 10,s &" "&i,s):Next:Debug.?s:End Sub

note: again, +5 for : newlines in PPCG format
Usage
In the VBE Immediates Window
  For i = 0 To 9: Print i & ":": a (i): Next
0:
 -100 -90 -80 -70 -60 -50 -40 -30 -20 -10 0 10 20 30 40 50 60 70 80 90 100
1:
 -100 -91 -81 -71 -61 -51 -41 -31 -21 -19 -18 -17 -16 -15 -14 -13 -12 -11 -10 -1 1 10 11 12 13 14 15 16 17 18 19 21 31 41 51 61 71 81 91 100
2:
 -92 -82 -72 -62 -52 -42 -32 -29 -28 -27 -26 -25 -24 -23 -22 -21 -20 -12 -2 2 12 20 21 22 23 24 25 26 27 28 29 32 42 52 62 72 82 92
3:
 -93 -83 -73 -63 -53 -43 -39 -38 -37 -36 -35 -34 -33 -32 -31 -30 -23 -13 -3 3 13 23 30 31 32 33 34 35 36 37 38 39 43 53 63 73 83 93
4:
 -94 -84 -74 -64 -54 -49 -48 -47 -46 -45 -44 -43 -42 -41 -40 -34 -24 -14 -4 4 14 24 34 40 41 42 43 44 45 46 47 48 49 54 64 74 84 94
5:
 -95 -85 -75 -65 -59 -58 -57 -56 -55 -54 -53 -52 -51 -50 -45 -35 -25 -15 -5 5 15 25 35 45 50 51 52 53 54 55 56 57 58 59 65 75 85 95
6:
 -96 -86 -76 -69 -68 -67 -66 -65 -64 -63 -62 -61 -60 -56 -46 -36 -26 -16 -6 6 16 26 36 46 56 60 61 62 63 64 65 66 67 68 69 76 86 96
7:
 -97 -87 -79 -78 -77 -76 -75 -74 -73 -72 -71 -70 -67 -57 -47 -37 -27 -17 -7 7 17 27 37 47 57 67 70 71 72 73 74 75 76 77 78 79 87 97
8:
 -98 -89 -88 -87 -86 -85 -84 -83 -82 -81 -80 -78 -68 -58 -48 -38 -28 -18 -8 8 18 28 38 48 58 68 78 80 81 82 83 84 85 86 87 88 89 98
9:
 -99 -98 -97 -96 -95 -94 -93 -92 -91 -90 -89 -79 -69 -59 -49 -39 -29 -19 -9 9 19 29 39 49 59 69 79 89 90 91 92 93 94 95 96 97 98 99

OOps. Fails the 0 test
Python 160-70= 90
n = int(raw_input())
for x in xrange(-100,101):
    num = abs(x)
    while num:
        if n == num%10:
            print x
            break
        num /= 10

this is the old wrong code (see comments):
Python 141 - 0 = 141
import re;n=raw_input('>');print "\n".join([str(j) for j in filter(lambda x:re.compile("-?.*"+str(n)+".*").match(str(x)),xrange(-100,101))])

You cannot use strings!

Besides the fact that you're using strings, why use REs? You could do this without them: n=raw_input(); print " ".join(filter(lambda x: n in x, map(str, range(-100, 101))))

@Oberon, you can do it also without lambda and map: s=input();print" ".join([\i`for i in range(-100,101)if`s`in`i`])`.

@manatwork, your code gives me a SyntaxError.

Interesting. @Oberon, could you tell us your interpreter's version? http://pastebin.com/KpsyAsJw

@manatwork, it was me. I used the wrong encoding.

I just corrected it. No strings and clearer.

Doesn't work with 0.

Java
    public static void main(String[] argv) {
    for(int i=-99;i<=99;i++)
    {
          int a,b;
          a=i/10;
          b=i%10;
          if(a==9||b==9||a==-9||b==-9){
              System.out.println(i);
                        }
    }
                                     }

JAVA:: O/P
-99
-98
-97
-96
-95
-94
-93
-92
-91
-90
-89
-79
-69
-59
-49
-39
-29
-19
-9
9
19
29
39
49
59
69
79
89
90
91
92
93
94
95
96
97
98
99

Can you include the language name and the character count please?


text:
Alphanumeric Hello World
Your goal is to write "Hello, World!" (minus the quotes). This is a popularity-contest, so most up votes  wins. Code length will be used to break ties.
Anything goes, as long as it is within the following rules:

All characters must be either letters or numbers, so you may only use characters in the string "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".
All code you use must be in one file, with the exception of imported modules/classes/whatever they're called in your favourite language.
Only the standard libraries/frameworks for your language of choice are allowed (for example, Python's Math module is allowed, but Numpy, Scipy, and Pygame are not). I will allow TkInter as it is the de facto standard for GUIs in Python.
No input is permitted, be it reading from stdin, reading a file, displying an image, or reading from the web.

+10 brownie points if you figure out how to do it in Java without bending the rules.

On your marks, get set, code!
EDIT: braces ({}), brackets ([]), and parentheses (()) are allowed as this would be pretty much impossible for most languages without them. I'm also removing the character limit rule. Hopefully this will make it more interesting.
EDIT^2: white space is also allowed. My brain isn't working properly, sorry. >.<

Would the downvoter care to explain his/her vote? I'dlike to know how I could make this better.

Didn't DV, but what do you mean when you say "all characters must be..." Most languages use other characters for even the most basic tasks: (){}[]/-+., etc. Are those banned?

Yes, they are. Should I widen the allowed characters a bit to include (), [], and {}?

Up to you, I'm just making sure. What about whitespace?

Ok, I think I'll widen the character number restriction, because as it is this is basically a duplicate of [Hello world! With limited character repetition] (http://codegolf.stackexchange.com/questions/18721/hello-world-with-limited-character-repetition?rq=1). Does 5 sound like a petter number?

Oh, right white space. My brain is clearly not functioning properly today. That should be allowed. One second, let me fix the rules.

What about these: ;?:&<>/+-,. ?

So, no operators? And, most importantly, no ;? How can I write anything in C?

esolangs.org Hello, World!

+1 for figuring out how to exclude J in a natural way: 72 101 108 108 111 44 32 87 111 114 108 100 33{a. requires the period at the end to work, and a path through u: similarly requires a colon. Without . and : we are nothing.

"I will allow as it is the de facto standard for Python." Allow what?

Oops, I was talking about TkInter for Python GUIs.

Damnit. I was thinking of Vim, but you still need to type the !, and the <> need to go around ESC. :/

No dots or commas? :(

Java? Impossible. I've been thinking about this for about half an hour and I say there's no way to do it.

tcl: Possible if % is allowed: puts Hello[format %c 44][format %c 32]World[format %c 33]

Can I use a backslash? Then it's possible in Java.

Python:
Hello, World!
An error is raised that has the exact phrase “Hello, World!”.

This question was closed on 2016‑05‑15 because it lacked focus. The suggested edits by @TheEmptyStringPhotographer 1 and me 2 attempting to resolve this issue have been rejected. I think it would be helpful if someone explained how/where the task is “blurry” so we can focus on one thing. To me there is no ambiguity as to what needs to be done to fulfill the task’s goals, but apparently the task is asking for multiple things (i. e. unfocused).

Perl
Some say perl is a language full of ascii noise and random symbols like $... That is not true :P
s zzHelloq worldmz and s zqzchr 44ze and s zmzchr 33ze and print

Let's break this up into subexpressions:
(s zzHelloq worldmz) and (s zqzchr 44ze) and (s zmzchr 33ze) and (print)

 It should be obvious that it executes from left to right as long as every expression returns true. But what on earth is s zqzchr 44ze?
In perl, there is a group of "quote-like operators" which includes  q(str), qw(li st), /regex/, s/from/to/ among other things. It turns out all of these operators can use almost any character as a delimeter, with a couple pecularities: opening parethesis has to be closed by a matching closing parenthesis, and if you wish to use a letter as a delimiter you have to put a space after the operator letter (to disambiguate it from a bareword).
In this case we see three uses of the s/// (regex substitution) operator:
s//Helloq worldm/
s/q/chr 44/e
s/m/chr 33/e
All delimited by the character z. The /e flag on the last two causes the substitution to be interpreted as code to be evaluated, rather literal text.
A fairly well-known fact about perl is that most operations default to operating on the $_ builtin variable unless otherwise specified. All these three substitutions and the print operate on $_ in this case, so first we put the words Hello world into the variable, then we fix the punctuation by using the numeric ascii values of the characters, then we print the contents of the variable.

+1 I don't know what the hell is going on here, but it works!

@squeamishossifrage That could be the perl motto

If you could, would you add a small explanation?

@ace "If you could...." You are implying that he can't. Or that if he did, we wouldn't understand it.

@steve verrill Sorry, I'm not so good at English. What I mean is that it is possible that he copied it from somewhere without understanding how it works, and if that is the case he wouldn't be able to explain it.

@ace There's nothing wrong with your English. I was just taking your phrase too literally in order to make a joke.

I'm by no means an expert, but in perl a replacement is usually indicated by s/PATTERN/REPLACEMENT/FLAGS, but you can actually use most anything you want instead of the slashes.  The code here uses "z" instead of slashes and turns (nothing) into "Helloq Worldm" then replaces "q" for chr 44 (using the \e flag to evaluate REPLACEMENT aka "chr 44" as an expression) which is ",".  It then replaces "m" with chr 33, a "!", and prints it.

@ace in a quote-like operator, e.g q//, any delimiter can be used, q!! q** q\\ q;;. A few exceptions are that to close ( you use ),  q() q[] q{} q<>, and that to use an alphanumeric as a delimiter, it should be spaced from the operator to disallow ambiguity, eg q qq, q 66. The same tricks apply to other quote-like operators.

+1 just for s . I actually muttered "s...space..." aloud to myself and chuckled.

Aah, Perl ! This is the weirdest answer I have seen on this site.

I think you should try and write a book using perl...

I read this as szarzabar 44 szsmchor33ze aaaand PRINT!

C
int main(void) {
  if (putchar(72))
    if (putchar(101))
      if (putchar(putchar(108)))
        if (putchar(111))
          if (putchar(44))
            if (putchar(32))
              if (putchar(87))
                if (putchar(111))
                  if (putchar(114))
                    if (putchar(108))
                      if (putchar(100))
                        if (putchar(33))
                        {
                        }
}

Awesome! It CAN be done in C. And I thought I'd won this...

You can do that with switch() as well - beat me to it.

@Comintern switch() uses :, as in case 1:

@ace Only if you have cases defined.  You can easily rewrite this as switch(putchar(72)){}switch(putchar(101)){}, etc.

+1 for putchar(putchar(108))

Just missing an "if(putchar(44))" for the comma.

Well spotted, not sure how I missed the comma in the question. Fixed.

@mattnewport WOW! I learned a new thing today! Thanks for your answer

Can't you put if (putchar(33)); instead of if (putchar(33)) {}?

Not under the stated rules - () and {} are permitted characters but not ;

(edit - BBC basic moved to separate answer as suggested. Most of the votes on this are definitely for the LOGO answer.)
LOGO
Interpreter at http://www.calormen.com/jslogo/#
TO h        pd  fd 100 rt  90  pu  fd 50  rt 90  pd  fd 100  rt 180 fd 50  lt 90  fd 50  rt 90  pu END
TO e        pu  fd 25  rt  90  pd  fd 25  rt 90  arc 270 25  lt 90  fd 25  lt 90  pu END
TO l        pd  fd 100 pu  END
TO o        rt  45 fd  35  pd  arc 360 25  lt  45  pu END
TO comma    pd  rt 90  arc 90  15  lt  90  pu END
TO w         l  rt 180 l   pd  lt  135 fd  35  rt  90  fd 35  lt 135  l  END
TO r        pd  fd 25  rt  90  pu  fd  25  rt 180  arc 180 25 rt 90 END
TO d         o  rt 135 fd  35  lt  135  l  END
TO exclaim arc 360 5   fd  10  l  END

clearscreen
setpencolor 4 pu
setxy 0 150      h
setxy 100 150    e
setxy 200 150    l
setxy 250 150    l
setxy 300 150    o
setxy 350 150    comma
setpencolor 1
setxy 0 0        w
setxy 100 0      o
setxy 200 0      r
setxy 300 0      l
setxy 350 0      d
setxy 450 0      exclaim
fd 100

Output (the green triangle is the turtle cursor)

You should split this answer into two.

@WallyWest I hardly know the language, but it was the tool for the job. You can print text too (it's called a label on your drawing) but you need a quotation mark for that (I think only the opening quote is required and the closing quote is optional.)

+1 for drawing it instead of printing words.

@steveverril The second quote would be a syntax error, actually.

Applescript
No brackets [], braces {} or parentheses () at all in this one:
set s to ASCII character 72
set s to s as list
set end of s to ASCII character 101
set end of s to ASCII character 108
set end of s to end of s
set end of s to ASCII character 111
set end of s to ASCII character 44
set end of s to space
set end of s to ASCII character 87
set end of s to item 5 of s
set end of s to ASCII character 114
set end of s to third item of s
set end of s to ASCII character 100
set end of s to ASCII character 33
display dialog s as text

Output is:

Unbelievable! (Having to write the word "character" in full, I mean!) Now I understand what they mean about Apples being expensive. Only joking, +1 for something different :-)

AppleScript is ridiculously verbose, but the result is it really is one of the most comprehensible programming languages for a layperson.

@JonathanVanMatre Hard to write, easy to read

even C is easier to read...

@DigitalTrauma IDK. I have no idea what set s to s as list does.

@Cruncher Line 1 assigns the simple ascii char "H" to the scalar variable s.  Then line 2 coerces that value to a list.  Thus after line 2, s contains a list of one element whose value is "H".  We can then append to that list in the subsequent lines.

@Cruncher — This is easy. The command set s to s as list transforms "H" into {"H"} (a list). In other languages, like Java, it is usually way more complicated to do that.

@NicolasBarbulesco Well strictly written it's impossible in Java. You can't change the type of a variable at runtime. However, I would prefer List<String> s = new ArrayList<String>(); s.add(oldS); ANY DAY. I know exactly what that does when I read it. It makes a list, and puts something in it.

@Cruncher — I was thinking, more generally, about set sl to s as list. In other languages, like Java, it is usually way more complicated to do that.

@Cruncher — But it is unnatural for humans. We humans first think about the subject and then, maybe, about the form.

Bash
This sort of works, if you squint your eyes:
echo NN i NN i i i iNN NNi i i i i i i NN i NN i i i i i i i NNi i i NN NN
echo NN i NNi i i i NN NN i i i i i i iNN i NN i i i i i i i NN i i iNN NN
echo NN i NN iNNNNi NN NN iNNNNi i i i NN i NN iNNNNi NN NN iNN iNNN NN NN
echo NNNNNNN NN iNN NN NN NN iNN i i i NN i NN NN iNN NNN iN NN NN iNNN N
echo NN i NN NNNNNN NN NN NNi NN i i i NN N NN NNi NN NN i i NN NNi iNN N
echo NN i NN NN i i NN NN NN iNN i i i NNN NNN NN iNN NN i i NN NN i NN
echo NN i NN iNNNi iNN NN iNNNNi N i i NN i NN iNNNNi NN i i NN iNNNN N NN
echo i i i i i i i i i i i i i i N

this works in windows bat/cmd file too

banner Hello World or figlet Hello World

@professorfish The tricky part of this challenge is getting the , and !.  Otherwise, I'd just use plain old echo.

@DigitalTrauma oh, sorry, didn't see that... a bit slow

base64
SGVsbG8sIFdvcmxkIQ

Satisfies the original rules.

Is base64 a language? And what's your output? Does it have the correct capitalization?

Sure it's a language, it's just not Turing-complete. Also, http://base64decode.org

Haha. For that response, +1 your comment, but not your answer. Maybe your answer later if I feel like it.

Alternatively you could evaluate the JavaScript expression atob("SGVsbG8sIFdvcmxkIQ").

@Neil you used "

@mniip That was a suggestion to steve as to how to verify the output.

@KendallFrey By that logic, base10 is a language: 1234567890.

@Cole — I don't get what you mean.

@NicolasBarbulesco Base64 is just a way of encoding numbers. Each "digit" has the range 0-63, just as hexadecimal has the range 0-15 and decimal has the range 0-9. However, each "digit" needs its own representation so they each take up one character. Why? If I were to tell you 132 is base 16, how are you supposed to interpret that? {1,3,2} or {13,2}. To work around that, we use a for 11, b for 12, and so on. Base 64 works the same way. The "numbers" in base 64 just don't start with 0,1,2,....

@NicolasBarbulesco My comment was directed towards Kendell Frey's (OP) comment where he says "Sure it's [base 64] a language...".

@ColeJohnson Strictly speaking, a language (mathematical/cs-theory term) is a set of finite strings formed using characters from a finite alphabet.  Base 64 certainly satisfies this, as does base 10, etc.  A programming language is something different. (I know this is a late response, but just for some clarification.)

Python
So what, we just assume everybody reads horizontally? For those users who like to read vertically:
print chr(72)
print chr(101)
print chr(108)
print chr(108)
print chr(111)
print chr(44)
print chr(32)
print chr(87)
print chr(111)
print chr(114)
print chr(108)
print chr(100)
print chr(33)

+1 and hahaha! This question had so many downvotes at the beginning, because people believed it was impossible. I don't know Python, but given all the moaning I couldn't believe it was THAT easy in such a common language.

I just wrote the exact same code before this answer was posted. I refreshed to post my answer and found this...

@steveverrill The moaning wasn't for no reason. There's not a single answer here that would have passed the original rules (no braces/parens/brackets, no characters repeated more than once)

@grovesNL If it makes you feel better, this is the first thing I've ever used python for. I spent a while combing through docs, trying to figure out if there was any feasible way to concat them into one line before posting.

@Geobits sys.stdout.write is the standard way to output text without newlines in most versions on Python (the behavior is slightly changed in 3.0). We can't do that here because of the periods.

@geobits Looks like I got here just in time for the relaxed rules. The only-alphanumeric I saw and knew I could work around. I missed the no-repeats rule.

Polyglot: HQ9+, H9+, HQ9++, CHIQRSX9+, HQ9+B and HQ9+2D (1 byte)
H

Thank you @victor for the list of languages.

This is a polyglot. It works too in H9+, HQ9++, CHIQRSX9+, HQ9+B and HQ9+2D.

I'm pretty sure it also works in Hello.

It works in any language that you invent.

I didn't invented anything...

Unfortunately the output is "hello, world" (http://esolangs.org/wiki/HQ9%2B), or according to this interpreter "Hello world." (http://www.almnet.de/esolang/hq9plus.php)  To get "Hello, world!" you might need to increment the accumulator a few times.

Necro: Don't forget http://esolangs.org/wiki/Help,_WarDoq!

@RK. I can't use that language since it was made after this challenge was published.

Yeah, but just for the record :)

COBOL
   ID DIVISION
   DATA DIVISION
   01  HELLOWORLDBINARY
       05  HE                       COMP    PIC 9999
       05  LL                       COMP    PIC 9999
       05  OCOMMA                   COMP    PIC 9999
       05  SPACEW                   COMP    PIC 9999
       05  ORTEXT                   COMP    PIC 9999
       05  LD                       COMP    PIC 9999
       05  EXCLAMATION              COMP    PIC 9999
   01  FILLER REDEFINES HELLOWORLDBINARY
       05  HELLOWORLDTEXT                   PIC XXXXXXXXXXXXX
       05  FILLER                           PIC X
   PROCEDURE DIVISION
       MOVE 51333                   TO HE
       MOVE 37779                   TO LL
       MOVE 38507                   TO OCOMMA
       MOVE 16614                   TO SPACEW
       MOVE 38553                   TO ORTEXT
       MOVE 37764                   TO LD
       MOVE 23104                   TO EXCLAMATION
       DISPLAY HELLOWORLDTEXT
       GOBACK

Required some changes to become truly alphanumeric source only.
PROGRAM-ID can be dropped. You get a generated program name (see messages).
WORKING-STORAGE can be dropped. Again the compiler moans.
Since both of these lines previously had missing full-stops/periods, which are no longer relevant now that the descriptions are entirely missing, the number of error messages is the same as before, and still does not affect the generated code for the program.
In changing COMP-5 to COMP, the VALUE clauses are no longer allowed, as COMP 9999 is only four decimal digits whereas COMP-5 is a two-byte binary with all bit-values available.
The values in the MOVEs are the decimal values which give the binary values which give the pairs of characters.
Even though the COMP fields have four digits, and do not allow VALUE clauses with more than four digits, you can use more digits in the MOVE of a literal value without truncation at that point... don't ask me why. Compiler option DIAGTRUNC (which I have turned off) will produce Warning diagnostics for these.
Compiler option TRUNC(BIN) could be used to treat COMP as COMP-5, but the MOVEs are another way to do it.
Since it is COBOL, the output must be in UPPER CASE (a lie, but just for fun).
HELLO WORLD!

OK, relented, now produces:
Hello, World!

Which, being an odd-number of characters, required some further changes, since we can't have odd-number-byte binary fields with this compiler. Look at that line of 13 Xs! It would normally be written as X(13), but can be as I've shown...
And ORTEXT is needed (or not OR, anyway) as a name because OR is a reserved word to the compiler (it means OR, of course).
These are EBCDIC values, not ASCII, since it is running on an EBCDIC-aware, and Big Endian, box.
Oh, COBOL requires lots of full-stops/periods. I left them out (they're banned) so got lots of compile messages. Just told the compiler to generate the code anyway (none of the messages relate to the object code).
Even without DIAGTRUNC, the messages are now up to 17...
  1  IGYDS1003-E   A "PROGRAM-ID" paragraph was not found.
  Program-name "CBLNAM01" was assumed.

  2  IGYDS1082-E   A period was required.  A period was assumed
  before "DATA".

  3  IGYDS1082-E   A period was required.  A period was assumed
  before "01".

                   Same message on line:     11

  3  IGYDS1040-E   A data item was found in the "DATA DIVISION"
                   before a section header was encountered.
                   "WORKING-STORAGE SECTION" was assumed.

  4  IGYDS1082-E   A period was required.  A period was assumed
  before "05".

                   Same message on line:      5      6      7      8
                   9     10     12     13

 14  IGYDS1082-E   A period was required.  A period was assumed
 before "PROCEDURE".

 15  IGYPS2145-E   A period was required.  A period was assumed
 before "MOVE".

 23  IGYSC1082-E   A period was required.  A period was assumed
 before "END OF PROGRAM".

I don't think - is allowed

Good point. Fixing. Habits.

@mniip Mmmm.... a little more tricky... I'll have to fix up the WORKING-STORAGE later. I have to leave now...

I laughed at "Since it is COBOL, the output must be in UPPER CASE".  Nice work!

OMGROFL
I'm a big fan of esoteric languages. Luckily OMGROFL is alphanumeric:
lol iz 72
rofl lol
lol iz 101
rofl lol
lol iz 108
rofl lol
rofl lol
lool iz 111
rofl lool
loool iz 44
rofl loool
loool iz 32
rofl loool
loool iz 87
rofl loool
rofl lool
lool iz 114
rofl lool
rofl lol
lol iz 100
rofl lol
lol iz 33
rofl lol
stfu

The iz command sets a value to a variable, in this case lol, lool and loool serve as variables...
The rofl command echoes out the ASCII equivalent to the number stored in the variable.
The stfu command terminates the program ;)

haha, nice! I wanted to attempt a LOLCODE version but the language requires using a colon and quotation marks to coerce ints to chars.

Javascript
with (function SGVsbG8sIFdvcmxkIQ(){}) atob(name)

Use browser's console to test.

Please could you explain how this works? How does atob(name) get the name of the function SGVsbG8sIFdvcmxkIQ()?

@AryanBeezadhur See this. Since a function is just an object, you can access the function.name property.

Thanks. because the braces ({}) were omitted I mistakenly thought that the function atob(name) was outside of the with() function

Ruby (using only alnums and whitespace)
putc 72
putc 101
putc 108
putc 108
putc 111
putc 44
putc 32
putc 87
putc 111
putc 114
putc 108
putc 100
putc 33

Output: Hello, World!

JavaScript
with (String) with ([]) {
    push(fromCharCode(72))
    push(fromCharCode(101))
    push(fromCharCode(108))
    push(fromCharCode(108))
    push(fromCharCode(111))
    push(fromCharCode(44))
    push(fromCharCode(32))
    push(fromCharCode(87))
    push(fromCharCode(111))
    push(fromCharCode(114))
    push(fromCharCode(108))
    push(fromCharCode(100))
    push(fromCharCode(33))
    alert(join([]))
}

ARGH! I hit the same solution, but decided that since it was 2:00 am, I should go to bed and post it in the morning. Kudos to you!

C
Uses only alphanumeric characters, spaces and braces {}, brackets [] and parenthesis ().
main()
{
        if(printf((long long []){0x202c6f6c6c6548}))
                if(printf((long long []){0x21646c726f57})){}
}

printf( ) accepts a char * as an argument, but since we can't use quotes("), I typecast the string as a long long array. The values seen here are ASCII strings, in little endian (0x48=H, 0x65=e, 0x6c=l, and so on). I typecast it to long long [] since that way I can pass an 8-byte argument and hence use only two printf( ) calls instead of four.

This breaks rule #1

Chars, numbers, spaces and {} () [] are allowed.

you can cast an int literal to array? I've never seen this before

What does this do ?

@LưuVĩnhPhúc Array is a pointer. Pointer is an integer.

@TheRare yes but I've only seen casts such as (volatile int*)0x12345678 but not casts using [] like that

@LưuVĩnhPhúc Afaik, the int[] is syntactic sugar for int*.

It's not an int literal – note the {}s.

ferNANDo
h E R
e I S
h E
l L O
w O
r L
d U S
i N G
o N L
y L E
t T E
r S

H e L L o W O R
L d h E L l O w
O r l D h e L L
O w o R l d H E
L l o W o r l d
H E l L o w O R
L D h E L L O W
O r L d H e l l
O w o R l d h e
L l o w O R l D
H e l L o w O R
L d h E L l O W
O R l D H E L l
O w O
r L d

Missing Comma and !

@VoronoiPotato: works fine over here

whoops sorry :X

BBC BASIC
Emulator at bbcbasic.co.uk
Split from my LOGO answer.
The easy way
The numbers on the right are just ASCII codes. This is just the same as printing. If I was allowed a comma I could do it on a single line (VDU 72,101,108,etc.)
   10 VDU 72
   20 VDU 101
   30 VDU 108
   40 VDU 108
   50 VDU 111
   55 VDU 44
   60 VDU 32
   70 VDU 87
   80 VDU 111
   90 VDU 114
  100 VDU 108
  110 VDU 100
  120 VDU 33

A more creative way
    5 MODE 6
   10 READ B
   12 WHILE B
   15   PROC1(B)
   16   PRINT
   17   READ B
   18 ENDWHILE
   20 END

REM procedure prints first square on line,
REM then calls itself recursively with A DIV 2 to print the next
REM VDU 17 tell VDU controller we want to change colour
REM Next line changes background colour.
REM Then following line VDU 32 prints a space in that background colour.

  110 DEFPROC1(A)
  115 VDU 17
  120 IF A AND 1 THEN VDU VPOS DIV 6 EOR 133 ELSE VDU 128
  125 VDU 32
  130 IF A THEN PROC1(A DIV2)
  140 ENDPROC

REM binary bitmap data for each row, least significant at left
  150 DATA 463221
  160 DATA 332053
  170 DATA 332151
  180 DATA 332053
  190 DATA 2586485
  200 DATA 1048576
  210 DATA 4395895
  220 DATA 4527447
  230 DATA 4526935
  240 DATA 333143
  250 DATA 4420981
  260 DATA 0

Rebol
Alphanumeric only solution:
prin quote Hello prin add space 12 prin space prin quote World print add space 1

Above is an update which uses Dr Rebmu excellent suggestion of add space 1 (which produces !) to get to all the characters.
Below is the original version:
prin quote Hello prin pick mold system 264 prin space prin quote World print pick mold system 12

Shorter version with brackets:
print rejoin [quote Hello pick mold system 264 space quote World pick mold system 12]

And even shorter version with braces:
print join {Hello} join pick mold system 264 join { World} pick mold system 12

And shortest version with both brackets & braces:
print rejoin [{Hello} pick mold system 264 { World} pick mold system 12]

Rebol uses braces {} for multi-line quoting.  So completely valid under rule changes but not quite in full spirit (IMHO) as my first two answers above.

NB. Printing the ! was a pain!
Rebol allows and uses punctuation characters routinely for function names and datatypes.  So options like to-char 33 or to char! 33 would not be allowed under the rules (even though these punctuations are not operators par se).
Fortunately I found a cheeky way by turning the Rebol system object: make object! [...] into a string and cherry pick that ! from it :)
Update: And now also cherry picked comma from license text in system object.

! is not allowed

@grovesNL - Solution no longer uses - or ! so you may now remove the down vote

You are missing the comma

@mniip - Thanks missed that!  Have now fixed.

Pretty tricky, but you could have just added to space to get the characters... ;-)  See the Rebmu solution, which clocks in at 46 chars...

@Dr.Rebmu - Nice one!  That add could come in handy in other golfs.   Have updated.

JavaScript!
And they said that it couldn't be done... No assignment operators, no concatenators, no quotes! Arghhhh!
Fear not... For the force is with you...
function w(x){
    with(document){
        with(String){
            write(fromCharCode(x))
        }
    }
}
w(72)
w(101)
w(108)
w(108)
w(111)
w(44)
w(32)
w(87)
w(111)
w(114)
w(108)
w(100)
w(33)

Output (on browser screen): Hello, World!

He said "Bonus if you can do it in Java" not Javascript.

@Almo I wasn't aiming to do it in Java... I was focussing on JavaScript, which is my main strength here on this site...

But you said "And they said that it couldn't be done" which I thought was referring to the puzzle stating bonus for doing it in Java. Many people still confuse Java with Javascript.

@Almo, I was just using a general saying... And when I refer to "Javascript", I intend to use JavaScript... Trust me, I wasn't planning on going for a bonus...

DC
DC is just about the perfect tool for the job.
5735816763073854918203775149089P

DCs P-command pops one number from the stack and outputs its raw computer representation to STDIO. Seeing as 5735816763073854918203775149089 = 0x48656C6C6F2C20576F726C6421, which is represented as 0x21, 0x64, 0x6C... = 'H', 'e', 'l'... in a little-endian architecture, it outputs Hello, World!.

How does this work? Would you mind adding an explanation?

Not at all. An explanation will be added shortly.

+1.  You could do it in hex to save a few chars: 16i48656C6C6F2C20576F726C6421P

Mathematica
Unprotect[Times]
ClearAll[Times]
Print[Hello FromCharacterCode[44] world FromCharacterCode[33]]

Haha, clever. Very nice!

Are the square brackets allowed?

What is the output ?

Isn’t a space missing ?

Javascript
Update: Managed to cut a bunch of characters by introducing a World function as well.
Another Javascript solution that writes to console.log:
function World() { with (World) return name }
function Hello() {}
with (console)
with (String)
with (Hello)
with (name)
with (concat(fromCharCode(44)))
with (concat(fromCharCode(32)))
with (concat(World()))
log(concat(fromCharCode(33)))

Inspired by this entry.
First, I define functions named Hello and World. This will be used later on.
Then I start my chain of nested withs. The with (console) and with (String) are used so that I can later on invoke console.log and String.fromCharCode without using a dot.
The plan is now to build the string Hello, World! by abusing nested withs. Each time I invoked concat(), the resulting string will be the context in the next with-block. I take a short cut to quickly get "Hello" by accessing the name property of the Hello function. Then I concatenate the comma and space characters by using String.fromCharCode.
The next trick is to get the "World" part of the string. I cannot use the same method I used to get Hello, since I cannot invoke World.name. Instead I put that logic inside the World method, and invoke it.
Finally, I append the final exclamation mark and send the result right to the log function, which is of course console.log.

Python:
import antigravity

causes "Hello, world!" to appear on your screen. Don't believe me? Try it out for yourself!
Also, this doesn't actually use the web, it opens a browser, that might lookup a website.

I have a 768-pixels height screen, so "Hello, world!" doesn't appear on my screen.

This does not write "Hello, world!" anywhere in my field of vision. But this opens xkcd.com/353/ in Safari !

I am not using the Web now. I am writing in a browser, that might connect to a Web site.

http://sciyoshi.com/2008/12/import-antigravity/ The code requires Python 3 to appear but will not run in Python 3 (unless that has been backported).

Perl
In a modern Perl (5.10 or newer):
print q{Hello} and print chr 44 and print q{ World} and say chr 33

In older Perl:
print q{Hello} and print chr 44 and print q{ World} and print chr 33 and print chr 10

Both solutions above use Perl q quote-like operator and allows selective delimiters for quoting a string, for eg.  q{} q[] q() q//
This solution requires the rule change that allows braces, brackets or parens. So while totally valid I think mniip excellent Perl answer is more in the true spirit of the rules (+1).
However taking a leaf out of mniip answer my solution could be written like so:
print q xHellox and print chr 44 and print q x Worldx and say chr 33

and while harder on the eye it does work.

You are missing the comma

@mniip - Thanks again.  Have now added missing comma.

Looks like AppleScript without the verbosity

On my Mac, the first and third Perl lines do not work, only the second Perl line works. I have Perl 5.16.2.

syntax error at -e line 1, near "say chr"

Execution of -e aborted due to compilation errors.

@NicolasBarbulesco - Use perl -E from command line.  Or if in script add use 5.010; (or newer) or use feature 'say';.  NB. The "say" statement was added to Perl at version 5.10.

With perl -E and with quotes around the commands, it works. But it does not give the exact string wanted by the question.

@NicolasBarbulesco - All 3 versions using perl -E '...code...' produce Hello, World! which is the correct answer.   What do you see?  Please post the exact command line you used to see whats wrong.

In fact, it does give the correct string now. Sorry, I had confused.

Perl
print chr hex for qw z48 65 6c 6c 6f 2c 20 57 6f 72 6c 64 21z

dc, (26 bytes for the golfers)
Whitespace and [] brackets are now allowed:
[Hello]n44P[ World]n33P[]p

Output:
$ dc <<< "[Hello]n44P[ World]n33P[]p"
Hello, World!
$

Python:
Pfff, who needs the numeric part of alphanumeric?
from string import lowercase
from string import uppercase
from string import punctuation
print uppercase[len(str([[[len(str())]]]))]
print lowercase[len(str([[]]))]
print lowercase[len(str([[[[[len(str())]]]]]))]
print lowercase[len(str([[[[[len(str())]]]]]))]
print lowercase[len(str([[[[[[[]]]]]]]))]
print punctuation[len(str([[[[[len(str())]]]]]))]
print
print uppercase[len(str([[[[[[[[[[[]]]]]]]]]]]))]
print lowercase[len(str([[[[[[[]]]]]]]))]
print lowercase[len(str([[[[[[[[len(str())]]]]]]]]))]
print lowercase[len(str([[[[[len(str())]]]]]))]
print lowercase[len(str([len(str())]))]
print punctuation[len(str())]

This is locale-dependant, so your milage may vary. However, if you really want to replicate this result, you could use the following instead of the import statements:
lowercase="abcdefghijklmnopqrstuvwxyz"
uppercase="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
punctuation="!\"#$%&'()*+,-./:;<=>?@[\]^_`{|}~"

(this is not part of my submission, it's just sharing my locals for recreatability)

Rebmu, 46 characters
pnUPPqHELLO01pnADsp12pnSPpnUPPqWORLD01pnADsp01

Strongly parallels @dragetun's solution in Rebol (Because Rebmu is a Rebol/Red teaching tool which is a "dialect" that aims to draw attention to the languages by rocking at Code Golf.  :-P)
However, to get the missing characters, I did something more obvious.  I just added to space, instead of going and looking through system strings.  You can get add space 1 to get character literal #"!" and add space 12 to get character literal #",".
If we run this we can see it get "unmushed":
>> rebmu/debug/stats "pnUPPqHELLO01pnADsp12pnSPpnUPPqWORLD01prADsp01"
Original Rebmu string was: 46 characters.
Rebmu as mushed Rebol block molds to: 46 characters.
Unmushed Rebmu molds to: 62 characters.
Executing: [pn upp q hello 1 pn ad sp 12 pn sp pn upp q world 1 pr ad sp 1]
Hello, World!

Which is fairly logial:
; print with no newline the result of doing an uppercase/part
; on the quoting of the symbolic word hello, of only the first
; N characters (where N is 1)
pn upp q hello 1

; print the character you get when you add 12 to the space
; character literal, a.k.a. comma...again no newline
pn ad sp 12

; print a space, no newline
pn sp

; do the same trick of printing the quoted word hello with the
; first letter converted to uppercase
pn upp q world 1

; print the character you get when you add 1 to the space
; character literal, a.k.a. exclamation point...with newline now
pr ad sp 1

Whitespace
Okay, we can use whitespace. It uses only Space, Tab, LineFeed and ignores any other characters.

With comment: S, T or L means Space, Tab or LineFeed respectively.
S S S T S S T   S S S L
T   L
S S S S S T T   S S T   S T L
T   L
S S S S S T T   S T T   S S L
T   L
S S S S S T T   S T T   S S L
T   L
S S S S S T T   S T T   T   T   L
T   L
S S S S S T S T T   S S L
T   L
S S S S S T S S S S S L
T   L
S S S S S T T   T   S T T   T   L
T   L
S S S S S T T   S T T   T   T   L
T   L
S S S S S T T   T   S S T   S L
T   L
S S S S S T T   S T T   S S L
T   L
S S S S S T T   S S T   S S L
T   L
S S S S S T S S S S T   L
T   L
S S L
L
L

With highlighting: http://en.wikipedia.org/wiki/Whitespace_(programming_language)#Sample_code

T-SQL, 52
Ah, this is better! Direct binary conversion, only 52 characters.
SELECT CAST(0x48656C6C6F2C20576F726C6421 AS VARCHAR)

Previously...
There's a much cleverer and golfier solution to this that would work if we could use = and + (Looking up standard built-in data in msdb and using that to construct an EXEC-able query string)
But since we can't, you get this naive approach:
SELECT CHAR(72)SELECT CHAR(101)SELECT CHAR(108)SELECT CHAR(108)SELECT CHAR(111)SELECT CHAR(44)SELECT CHAR(32)SELECT CHAR(87)SELECT CHAR(111)SELECT CHAR(114)SELECT CHAR(108)SELECT CHAR(100)SELECT CHAR(33)

I know, the lack of concatenation operators is killing me... I'm trying to think of a way to do it with JavaScript...

Yeah, although this challenge seems to produce mostly naive answers, it has definitely inspired some interesting brain-twisting to try to find interesting non-concatenative approaches.

You can do better.  Use PRINT rather than SELECT.  And implicitly cast with LTRIM() or RTRIM().  I do something similar here.

Groovy
So updated. Much wat.
def wat(i) { print i
  this
}
def wat(int i) { wat i as char }
def getProperty(String p) { p }
wat Hello wat 44 wat 32 wat World wat 33

J - 73 char
It can be done, after all!
72 101 108 108 111 44 32 87 111 114 108 100 33{do 1 8{show 0 def 0
take
)

Here's the thing about J. Most of the primitives are ASCII punctuation, followed by up to two dots or colons. Those primitives that aren't made of punctuation are an alphanumeric character followed up to two dots or colons. So we're allowed none of those, except for { } [ ]. [ and ] are identity verbs and are thus useless.
Luckily, { indexes arrays, so if we had, say, a string with every single ASCII character (a., called Alphabet), we could pull the letters out by their ASCII codepoints. We also have a backup way of making strings, 0 : 0 and then stuff and then a lone ); the colon in which has an alias in the standard library, def.
Then there's a verb in the standard library, show, that gives you the internal representation of a verb if you pass it the name as a string. There's another verb, do, that will eval a string. So if we can pull out an a. from any such representation, we can eval that and pull out Hello, World!.
Our saviour comes in the form of take, an alias for {. that has an a in its name. show'take' will return take=: {., so we have our a. and thus a solution.
We can get rid of { by using the essentially equivalent pick from the standard library, but the paren at the very end can't be avoided.

perl
How about a more straight-forward perl implentation?
print q zHelloz and print chr 44 and print q z worldz and print chr 33

GolfScript
389960998265612367812323333 115base]zip

Try it online.
How it works
Since both number and square brackets are allowed, pushing an array containing the character codes of all bytes in the string “Hello, World!” is straightforward:
[72 101 108 108 111 44 32 87 111 114 108 100 33]

The highest character count is 114, so we could also push this array as a base 115 number:
389960998265612367812323333 115base

The problem lays in casting this array to a string. There's already a string on the stack (the empty string, since there was no input from STDIN). Strings have higher priority than arrays in GolfScript, so any way of combining the empty string with the array from above will yield a string.
Almost all built-ins are out, since they use non-alphanumeric characters (e.g., + for concatenation), but we can use zip, which transposes array rows with columns.
First, we append a ] to the array, so a two-dimensional array consisting of the empty string an the character array will lay on the stack.
Then, we append zip. The result of the transpose will be the following array:
[   "H"   "e"   "l"   "l"   "o"   ","   " "   "W"   "o"   "r"   "l"   "d"   "!"   ]

By default, GolfScript prints all item on the stack, one by one. The result is:
Hello, World!

GO (golang)
package main

func main() {
    print(string(72))
    print(string(101))
    print(string(108))
    print(string(108))
    print(string(111))
    print(string(44))
    print(string(32))
    print(string(87))
    print(string(111))
    print(string(114))
    print(string(108))
    print(string(100))
    print(string(33))
}

No "fmt" used... Just print.

Lua (112)
io[ [[write]]][[Hello]]io[ [[write]]](string[ [[char]]](44))io[ [[write]]][[ World]]print(string[ [[char]]](33))

Pretty straightforward. Lua's alternate string syntax is quite a boon here, in addition to "the only data structure is a table" which means that io.write is equilavent to io['write'].

Haskell
Not exactly a program, as it is impossible to create a program without main=.
This is simply an expression for an interactive interpreter, such as ghci:
putStrLn (map toEnum (scanl (const id) 72 (scanl (const id) 101 (scanl (const id) 108 (scanl (const id) 111 (scanl (const id) 44 (scanl (const id) 32 (scanl (const id) 119 (scanl (const id) 111 (scanl (const id) 114 (scanl (const id) 108 (scanl (const id) 100 [33]))))))))))))

scanl (const id) is used instead of (:),
toEnum :: a -> Char is used instead of chr, as I'd have to import Data.Char then.

Emacs Lisp
Displays "Hello, World!" in a browser when you eval it.
it's lisp as ascii values of base64  of lisp of base64 of ascii values if you start unobfuscating it.
(eval (read (eval (list (intern (string 98 97 115 101 54 52 45 100 101 99 111 100 101 45 115 116 114 105 110 103))
                        (string 75 71 120 108 100 67 65 111 75 71 90 112 98 71 85 103 75 71 86 50 89 87 119 103
                                75 72 74 108 89 87 81 103 75 71 74 104 99 50 85 50 78 67 49 107 90 87 78 118 90
                                71 85 116 99 51 82 121 97 87 53 110 73 67 74 76 83 69 52 119 89 50 49 115 100 86
                                112 53 10 81 84 86 78 97 85 70 52 84 85 82 82 90 48 49 85 81 88 104 74 82 69 86
                                51 84 48 78 66 101 69 49 69 90 50 100 78 86 69 86 52 83 85 82 70 101 69 57 84 81
                                88 104 78 86 69 86 110 84 86 82 70 77 69 108 69 82 88 100 80 81 48 70 52 84 85 82
                                66 10 90 48 49 85 82 88 104 74 82 69 86 52 84 110 108 66 101 69 49 85 87 87 100
                                78 86 69 86 53 83 85 82 70 101 69 53 53 81 88 104 78 86 70 108 110 84 107 82 90
                                90 48 49 85 81 84 66 74 82 69 86 52 84 109 108 66 101 69 49 69 97 50 100 78 86 69
                                69 48 10 83 49 69 57 80 83 73 112 75 83 107 112 75 83 65 111 100 50 108 48 97 67
                                49 48 90 87 49 119 76 87 90 112 98 71 85 103 90 109 108 115 90 83 65 111 97 87 53
                                122 90 88 74 48 73 67 104 108 100 109 70 115 73 67 104 121 90 87 70 107 73 67 104
                                105 89 88 78 108 10 78 106 81 116 90 71 86 106 98 50 82 108 76 88 78 48 99 109 108
                                117 90 121 65 105 83 48 104 79 77 71 78 116 98 72 86 97 101 85 69 121 84 85 78 66
                                101 69 49 69 85 87 100 79 86 69 86 110 84 109 112 74 90 48 53 54 83 87 100 78 86 69
                                70 52 83 85 82 70 10 100 48 57 68 81 88 104 78 82 71 100 110 84 86 82 70 101 69 108
                                69 85 84 66 74 82 69 49 53 83 85 82 110 77 48 108 69 82 88 104 78 85 48 70 52 84 86
                                82 82 90 48 49 85 81 84 82 74 82 69 86 51 84 85 78 66 101 107 49 53 81 84 74 78 81
                                48 69 119 10 84 110 108 66 101 69 49 69 85 87 100 79 86 69 86 110 84 109 112 74 99
                                67 73 112 75 83 107 112 75 83 65 111 89 110 74 118 100 51 78 108 76 88 86 121 98 67
                                49 118 90 105 49 109 97 87 120 108 73 71 90 112 98 71 85 112 73 67 107 103)))))

CJam
One of the few answers satisfying the original requirement for the character set:
72c101c108c108c111c44c32c87c111c114c108c100c33c

This straightforwardly builds the string character by character.
Another solution:
389960998265612367812323333 115b{Xc}fX

This converts the first number to base 115 then converts each digit to a character.
And finally, a solution that uses only 3 different characters: K, ) and c (newlines are optional):
K))))))))))))))))))))))))))))))))))))))))))))))))))))c
K)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))c
K))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))c
K))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))c
K)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))c
K))))))))))))))))))))))))c
K))))))))))))c
K)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))c
K)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))c
K))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))c
K))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))c
K))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))c
K)))))))))))))c

I used K because it's the variable initialized with the largest number (20).
Online interpreter: http://cjam.aditsu.net/

FORTH
UPDATE:
Here's the basically similar version that executed straight from forth file, as opposed to defining a WORD (subroutine) and it uses only alphanumeric characters.
72 EMIT
101 EMIT
108 EMIT
108 EMIT
111 EMIT
44 EMIT
32 EMIT
87 EMIT
111 EMIT
114 EMIT
108 EMIT
100 EMIT
33 EMIT

been a while with FORTH but this seems to work, thanks for the 'C' language reply I didn't bother looking up ACSII codes.
I used the iMop and iBucket (http://sourceforge.net/projects/powermops/files/iMops/)
and also tested with an osx variant (https://sites.google.com/site/chrishinsley/)
: HELLOWORLD ( -- )
72 EMIT
101 EMIT
108 EMIT
108 EMIT
111 EMIT
44 EMIT
32 EMIT
87 EMIT
111 EMIT
114 EMIT
108 EMIT
100 EMIT
33 EMIT
;

code: 224     data: 16
cr HELLOWORLD
Hello, World!

I don't think :, -, or ; are allowed.  Otherwise, nice post.

the colon, dash, and semi-colon are language basic delimiters.  although there might be some way to type it in the interpreter without defining a WORD (which is Forth for subroutine).  maybe I'll try APL next.  :-0

Yeah, I know.  This challenge is a tough one to start on.

Python, 148 bytes
from binascii import unhexlify
print unhexlify(bytearray(str(0)if c in hex(14)else c for c in hex(0x48656c6c6f2c2e776f726c6421)if c not in hex(0L)))

REXX
Using standard build-in functions only (ASCII based)
  SAY x2c(48656c6c6f2c20576f726c6421)

Yields:

Hello, World!

PHP - 46 bytes (with invalid underscore)
if(print(base64_decode(SGVsbG8sIFdvcmxkIQ))){}

PHP - 88 bytes
if(print(Hello))if(print(chr(44)))if(print(chr(32)))if(print(World))if(print(chr(33))){}

Works by abusing the fact that PHP will assume any unassigned constant is a string equal to its name.

Underscore is not allowed

So second nature I hadn't even realised. Luckily, I had an alternate.

Racket
(quasiquote (unquote (quote (Hello (unquote (quote World))))))

It barely works. The output is '(Hello ,'world)
To run this code, start DrRacket and paste the code above to the console.
Don't do it in Advanced Student Language, it shows up (list 'Hello (list 'unquote (list 'quote 'world))) instead.

JavaScript:
with(String) {
    with(console) {
        log(fromCharCode(72))
        log(fromCharCode(101))
        log(fromCharCode(108))
        log(fromCharCode(108))
        log(fromCharCode(111))
        log(fromCharCode(44))
        log(fromCharCode(32))
        log(fromCharCode(87))
        log(fromCharCode(111))
        log(fromCharCode(114))
        log(fromCharCode(108))
        log(fromCharCode(100))
        log(fromCharCode(33))
    }
}

Unfortunately the Firefox console displays this as

H
  e
  l(2)
  o

etc....

I managed to find a way of displaying it on the browser screen... see my answer below: http://codegolf.stackexchange.com/a/23169/8555

Java (NetBeans)
class Hello extends Exception
{
    Hello(String s)
    {
        super(s)
    }
}

public class HelloWorld
{
    public static void main(String[] args) throws Hello
    {
        world((char)130)
    }

    static void world(char c) throws Hello
    {
        throw new Hello(new String(new char[]{c}))
    }
}

Output:
Exception in thread "main" Hello: ,
    at HelloWorld.world(HelloWorld.java:18)
    at HelloWorld.main(HelloWorld.java:13)
Java Result: 1

A few notes:

NetBeans allows you to omit semicolons, but isn't happy about it. Eclipse and javac don't compile.
I don't get the +10 brownie points, since including unnecessary output is bending (but not violating) the rules.
The exclamation point is courtesy of NetBeans, objecting like crazy to the lack of semicolons.

I get Hello.java:12: error: ';' expected super(s) from the compiler.

@Riking What IDE are you using?

That was with javac. Eclipse gives Exception in thread "main" java.lang.Error: Unresolved compilation problem:   Syntax error, insert ";" to complete BlockStatements when you try to run it.

Okay; I guess it's compiler-dependent.

Lua
io[ [[write]]][[Hello]]
io[ [[write]]](string[ [[char]]](44))
io[ [[write]]][[ World]]
io[ [[write]]](string[ [[char]]](33))

edit: Didn't see AlliedEnvy's answer, which is identical to mine, except mine doesn't print a newline at the end.

VBA
Since equals, quotes and dot are out of the question, and as everyone loves message boxes:
Sub helloworld()
    MsgBox Chr(72)
    MsgBox Chr(101)
    MsgBox Chr(108)
    MsgBox Chr(108)
    MsgBox Chr(111)
    MsgBox Chr(44)
    MsgBox Chr(87)
    MsgBox Chr(111)
    MsgBox Chr(114)
    MsgBox Chr(108)
    MsgBox Chr(100)
    MsgBox Chr(33)
End Sub

Julia
Option 1, using square brackets and join, and just one print/char:
print(join(char([72 101 108 108 111 44 32 87 111 114 108 100 33])))

Option 2, one "char" at a time:
print(char(72))
print(char(101))
print(char(108))
print(char(108)
print(char(111))
print(char(44))
print(char(32))
print(char(87))
print(char(111))
print(char(114))
print(char(108))
print(char(100))
print(char(33))

Options 3 + 4, same as above, but with 0x?? char creation. That is, rather than char(72), use 0x72. Or, in the join case, replace 72 with 0x72 (and so on) and remove the "char" operation entirely.

PHP (111 chars)
<?=chr(72).chr(101).chr(108).chr(108).chr(111).chr(44).chr(32).chr(87).chr(111).chr(114).chr(108).chr(100).chr(33)?>

Assuming . is OK (I have used: [chr0-9\(\)\.]).

dc - 25 bytes
33[ World]44[Hello]PaPPap

I'm starting to like dc.

Logo, 52 chars
pr se word [Hello] char 44 word char [World] char 33

Using the new rule that brackets are allowed. Otherwise, one could word together lots more chars to achieve the same goal.

Common Lisp
This almost works, except that - isn't allowed.  If only there were the functions stringCapitalize and codeChar instead…
(mapcar (lambda (x)
          (princ (string-capitalize x)))
        (list (quote hello)
              (code-char 44)
              (code-char 32)
              (quote world)
              (code-char 33))))

The nice thing here is that string-capitalize takes a string designator, which can be a string, symbol, or character.  Sample use:
CL-USER> (mapcar (lambda (x)
                   (princ (string-capitalize x)))
                 (list (quote hello)
                       (code-char 44)
                       (code-char 32)
                       (quote world)
                       (code-char 33)))
Hello, World!

Unfortunately, - is banned.

@Geobits aww… I got excited when I saw that parens were allowed… I think I can work around this, though

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/

authors: Ксения Цочева

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

sort: votes