This source did not publish a separate summary. Review SKILL.md before using the skill.
SKILL.md
Python to Scala Syntax Mapping
Variable Declarations
Python
Scala
x = 5
val x = 5 (immutable) or var x = 5 (mutable)
x: int = 5
val x: Int = 5
x, y = 1, 2
val (x, y) = (1, 2)
Prefer val over var unless mutation is required.
Type Mappings
Python
Scala
int
Int
float
Double
str
String
bool
Boolean
None
None (of type Option) or null
list[T]
List[T] or Seq[T]
dict[K, V]
Map[K, V]
set[T]
Set[T]
tuple[A, B]
(A, B) or Tuple2[A, B]
Optional[T]
Option[T]
Control Flow
Conditionals
# Python
if x > 0:
result = "positive"
elif x < 0:
result = "negative"
else:
result = "zero"
// Scala - if is an expression
val result = if (x > 0) "positive"
else if (x < 0) "negative"
else "zero"
Loops
# Python for loop
for i in range(10):
print(i)
for item in items:
process(item)
for i, item in enumerate(items):
print(f"{i}: {item}")
// Scala equivalents
for (i <- 0 until 10) println(i)
for (item <- items) process(item)
for ((item, i) <- items.zipWithIndex) println(s"$i: $item")
While loops
# Python
while condition:
do_something()
// Scala
while (condition) {
doSomething()
}
Comprehensions
# Python list comprehension
squares = [x ** 2 for x in range(10)]
evens = [x for x in numbers if x % 2 == 0]
pairs = [(x, y) for x in xs for y in ys]
// Scala for-comprehensions or map/filter
val squares = (0 until 10).map(x => x * x).toList
val evens = numbers.filter(_ % 2 == 0)
val pairs = for { x <- xs; y <- ys } yield (x, y)
// Scala
def add(a: Int, b: Int): Int = a + b
// Lambda
val square: Int => Int = x => x * x
// or shorter: val square = (x: Int) => x * x
// Default arguments
def greet(name: String, greeting: String = "Hello"): String =
s"$greeting, $name!"
String Formatting
Python
Scala
f"Hello, {name}!"
s"Hello, $name!"
f"Value: {x:.2f}"
f"Value: $x%.2f"
f"{x + y}"
s"${x + y}"
Common Operators
Python
Scala
** (power)
math.pow(x, y) or use scala.math.pow
// (floor div)
x / y (for Int) or math.floor(x / y)
% (modulo)
%
and, or, not
&&, `
in
.contains()
is
eq (reference equality)
==
== (value equality)
Exception Handling
# Python
try:
result = risky_operation()
except ValueError as e:
handle_error(e)
finally:
cleanup()
// Scala
import scala.util.{Try, Success, Failure}
// Pattern 1: try-catch
try {
val result = riskyOperation()
} catch {
case e: IllegalArgumentException => handleError(e)
} finally {
cleanup()
}
// Pattern 2: Try monad (preferred for functional style)
val result = Try(riskyOperation()) match {
case Success(value) => value
case Failure(e) => handleError(e)
}
None/Null Handling
# Python
if value is None:
return default
return process(value)
# Or
result = value if value is not None else default
// Scala - use Option
val result = optionValue match {
case Some(v) => process(v)
case None => default
}
// Or more concisely
val result = optionValue.map(process).getOrElse(default)