Scala FAQ: Can you use a question mark to end a Scala method name?
Answer: Yes, you can. Just use an underscore character before the question mark. For instance, here’s a method named alive_?:
def alive_? = true
Another possible approach you can use is to use backtick characters around the method name, without using an underscore:
def `alive?` = true
However, I don’t care for that approach, because you then have to use the backticks when calling the method name.
Examples
This is what happens in the Scala REPL if you try to use a ? character at the end of a method name without using an underscore:
scala> def equal? (a: Int, b: Int): Boolean = { a == b }
<console>:1: error: '=' expected but identifier found.
def equal? (a: Int, b: Int): Boolean = { a == b }
^
Clearly that doesn’t work. But when you add an underscore before the question mark you’ll see that you can create and use the method:
scala> def equal_? (a: Int, b: Int): Boolean = { a == b }
equal_$qmark: (a: Int, b: Int)Boolean
scala> equal_?(1,1)
res3: Boolean = true
scala> equal_?(1,2)
res4: Boolean = false
Here’s what the backticks approach looks like:
# define the method
scala> def `equal?` (a: Int, b: Int): Boolean = { a == b }
equal$qmark: (a: Int, b: Int)Boolean
# try using it without backticks
scala> equal?(1,1)
<console>:12: error: not found: value equal
equal?(1,1)
^
# use it with the backticks
scala> `equal?`(1,1)
res6: Boolean = true
Discussion
Using a question mark character at the end of a method name is something I first saw in Ruby. Some people like to use it on method names when a method returns a boolean value.

