问题 I've read comments stating that Scala's flexibility makes it easy for developers to write DSLs that are difficult to understand and reason about. DSLs are possible because we can sometimes omit . and parentheses (e.g. List(1) map println ) we can sometimes interchange () and {} we have implicit values, parameters, and classes (also conversions, which are now discouraged) there is a relatively small number of reserved symbols in the language (e.g. I can define + for my class) and possibly