I started learning Scheme for fun, and was wondering if anyone uses it for a living as a prime programming language... or even as an additional tool to the programming arsenal? If so, what do you use it for? What kind of problems do you typically solve with it?
Some GNOME apps are scriptable with the Guile dialect of Scheme, most notably GIMP.
Closely related, GNU Emacs is scripted using LISP.
The original version of the Yahoo! store was written by Paul Graham in Common Lisp. He sold it for a lot of money. (Update: only a piece of the store, thanks for the detailed comment by Laurence Gonsalves.)
It is, however, one of the few or even the only well-known success case of Lisp in the real world, and for some reason Yahoo rewrote it in C++.
There are a number of free programs that use Lisp, but few if any people get paid to work on them, and these are not specifically Scheme. gEDA is the gnu electronic design automation package and is one of the (again, few) success cases for Guile, the Gnu lisp extension language.
ELisp, or Emacs lisp is perhaps the most commonly deployed lisp system. I don't know how many emacs users actually use the extension language.
Seeing how Scheme is a variant of Lisp, ANY kind of problems.
As an example of vesratility, the e-commerce engine that later became Yahoo! Stores was (before it was bought by Yahoo) largely, though not exclusively, written in Lisp.
I know a guy in the Boston area who codes in Scheme for a living. I think he works for some offshoot of MIT. Since Scheme is the 1st language at MIT, a lot of the startups around here use Scheme at least in part...
So, the answer to that is "Some but not that many" (Sadly)
If Warren's answer hasn't clued you in, the answer is no. Practically no one is making a living off of Scheme. (Paul Graham's Yahoo Store is, to my mind, the exception that proves the rule -- you can code a great product in Lisp, but there's a reason why Graham is practically the only person on earth who has become wealthy doing so. Think Harvard Ph.D. and incredibly fortunate timing.)
However, people out there in the real world are making a living doing functional programming. There are companies like Galois, Jane Street, etc., who specialize in functional languages. And once you've learned one functional language (Scheme, OCaml, Haskell, etc.), other functional languages are much easier to learn.
I think the second part of your question -- what questions is Scheme well-suited to solving -- is easily answerable. Scheme is Turing-complete, which means it can solve anything that any other programming language can. It has some nifty features that haven't even made it into Common Lisp yet (tail recursion, notably), but it's also lacking many features that CL has acquired over the years.
Check out: http://webcast.berkeley.edu/course_details_new.php?seriesid=2009-D-26266&semesterid=2009-D This is a great course on scheme programming, which shows that scheme is still being taught at the university level, so there must be some application in it.
ITA Software (makers/operators of an airfare search engine that powers Hotwired and the like) writes their product in Lisp.
Also, AutoCAD can be scripted in Lisp.
Yes some people use Scheme for a living. For example there are occasional openings for Scheme programmers here in Montreal (http://theschemeway.blogspot.com/2009/03/scheme-job-openings-at-gamerizon.html). Search the site for "job" for more Scheme jobs.
In my experience people programming in Scheme make up less than .1% of the professional programming community, at least here in Montreal. I have seen Scheme used for doing embedded systems programming, high-precision numerical computing, web programming, game scripting, and more.
There are plenty of people who write Scheme for a living. They're university professors, though, mostly in the field of programming languages--there are several here at Indiana University, like Kent Dybvig and Dan Friedman. They prototype new ideas in programming language semantics (and Dybvig also sells a Scheme compiler).
This is not a field that has a lot of paying customers, so technically the professors are paid because they have tenure at a university. But they got tenure by publishing new ideas in programming languages.
There are also some professors who advocate the use of Scheme as a teaching language, like Matthias Felleisen and the others behind PLT Scheme. They also write Scheme for a living.
Scheme is great for trying out new language semantics because it has very simple, powerful primitives and the uniform syntax lets you concentrate only on the semantics. If you are designing a new programming language, prototyping it in Scheme might be a useful first step. Scheme doesn't get in the way of new ideas because it includes so few of its own.
Check this out: A Video Game Written in Gambit C. Here is the Post to the Gambit mailing list stating as such..
I've done a smattering of scheme programming in my job, mostly for automating tasks. It was especially helpful when walking over a massive JSP codebase to pull out any CData, and prepare it for sending to our translations vendor. (Yay SXML)
Having Scheme on your resume isn't a bad thing.
Coot (some sort of CAD program for proteins) is the most highly cited [1] open source software and uses scheme as the extension language. The developers are academics and are paid to develop it.
[1]: in the scientific literature