<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Appendix on Advanced Beginner</title><link>https://advanced-beginner.github.io/en/docs/scala/appendix/</link><description>Recent content in Appendix on Advanced Beginner</description><generator>Hugo</generator><language>en-US</language><managingEditor>d8lzz1gpw@mozmail.com (kimbenji)</managingEditor><webMaster>d8lzz1gpw@mozmail.com (kimbenji)</webMaster><lastBuildDate>Mon, 23 Mar 2026 19:08:15 +0900</lastBuildDate><atom:link href="https://advanced-beginner.github.io/en/docs/scala/appendix/index.xml" rel="self" type="application/rss+xml"/><item><title>Glossary</title><link>https://advanced-beginner.github.io/en/docs/scala/appendix/glossary/</link><pubDate>Wed, 14 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/scala/appendix/glossary/</guid><description>&lt;p&gt;Key Scala terms organized alphabetically. For detailed explanations, refer to the &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/"&gt;Concepts&lt;/a&gt; section. Each term includes a definition and links to related documentation.&lt;/p&gt;
&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;TL;DR - Top 5 Terms&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Case Class&lt;/strong&gt;: Immutable data class, auto-generates &lt;code&gt;equals&lt;/code&gt;/&lt;code&gt;copy&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Option[A]&lt;/strong&gt;: Replacement for null, either &lt;code&gt;Some(value)&lt;/code&gt; or &lt;code&gt;None&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pattern Matching&lt;/strong&gt;: Structure analysis and data extraction (&lt;code&gt;match&lt;/code&gt; expressions)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Trait&lt;/strong&gt;: Interface that can include implementations, supports mixin inheritance&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;given/using&lt;/strong&gt; (Scala 3): New syntax for implicit values/parameters&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;h4 id="a"&gt;A&lt;a class="anchor" href="#a"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;ADT (Algebraic Data Type)&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;Algebraic data types. Combination of sum types and product types defined with &lt;code&gt;sealed trait&lt;/code&gt; and &lt;a href="#case-class"&gt;Case Class&lt;/a&gt;. Can be defined more simply with &lt;code&gt;enum&lt;/code&gt; in Scala 3. → Used with &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/pattern-matching/"&gt;Pattern Matching&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Applicative&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A &lt;a href="#type-class"&gt;Type Class&lt;/a&gt; that combines independent effects. Provides &lt;code&gt;pure&lt;/code&gt; and &lt;code&gt;ap&lt;/code&gt; operations. More powerful than &lt;a href="#functor"&gt;Functor&lt;/a&gt;, weaker than &lt;a href="#monad"&gt;Monad&lt;/a&gt;. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/functional-patterns/"&gt;Functional Patterns&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;apply method&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A special method that allows objects to be called like functions. &lt;code&gt;obj(args)&lt;/code&gt; is interpreted as &lt;code&gt;obj.apply(args)&lt;/code&gt;. Commonly used as a factory method in &lt;a href="#companion-object"&gt;Companion Object&lt;/a&gt;.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h4 id="c"&gt;C&lt;a class="anchor" href="#c"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;Case Class&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A special class for immutable data. Automatically generates &lt;code&gt;equals&lt;/code&gt;, &lt;code&gt;hashCode&lt;/code&gt;, &lt;code&gt;copy&lt;/code&gt;, &lt;code&gt;unapply&lt;/code&gt;, etc. Used with &lt;a href="#pattern-matching"&gt;Pattern Matching&lt;/a&gt;. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/case-classes/"&gt;Case Classes Details&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Companion Object&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A singleton object with the same name as a class. Can access the class&amp;rsquo;s &lt;code&gt;private&lt;/code&gt; members. Implements factory pattern with &lt;a href="#apply-method"&gt;apply method&lt;/a&gt;. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/classes-objects/"&gt;Classes and Objects&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Context Bound&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;Syntax requiring the existence of a &lt;a href="#type-class"&gt;Type Class&lt;/a&gt; instance, like &lt;code&gt;def f[A: Ordering]&lt;/code&gt;. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/implicits/"&gt;Implicits&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Currying&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A technique for transforming a function with multiple arguments into a chain of single-argument functions. Used with &lt;a href="#higher-order-function"&gt;Higher-Order Function&lt;/a&gt;. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/functions-methods/"&gt;Functions and Methods&lt;/a&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;A-C Key Points&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ADT&lt;/strong&gt;: Type-safe data modeling with &lt;code&gt;sealed trait&lt;/code&gt; + &lt;code&gt;case class&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Case Class&lt;/strong&gt;: Optimized for immutable data, used with pattern matching&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Companion Object&lt;/strong&gt;: Place for factory methods (&lt;code&gt;apply&lt;/code&gt;) and utility functions&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;h4 id="e"&gt;E&lt;a class="anchor" href="#e"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;Either[L, R]&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A type that holds one of two types. Usually &lt;code&gt;Left&lt;/code&gt; is failure, &lt;code&gt;Right&lt;/code&gt; is success. Similar to &lt;a href="#optiona"&gt;Option&lt;/a&gt; but can contain failure information. Can be chained with &lt;a href="#flatmap"&gt;flatMap&lt;/a&gt;.&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Extension Method&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A technique for adding new methods to existing types. Use &lt;code&gt;extension&lt;/code&gt; keyword in Scala 3. Used in &lt;a href="#type-class"&gt;Type Class&lt;/a&gt; implementations. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/appendix/version-comparison/"&gt;Scala 3 Feature Comparison&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;ExecutionContext&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;Context providing a thread pool for executing &lt;a href="#futuret"&gt;Future&lt;/a&gt;. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/concurrency/"&gt;Concurrency&lt;/a&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;h4 id="f"&gt;F&lt;a class="anchor" href="#f"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;flatMap&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;An operation that transforms values inside a container and flattens the result. Core operation of &lt;a href="#monad"&gt;Monad&lt;/a&gt;. Can be elegantly expressed with &lt;a href="#for-comprehension"&gt;For Comprehension&lt;/a&gt;.&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;For Comprehension&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;Syntactic sugar for elegantly expressing combinations of &lt;a href="#flatmap"&gt;flatMap&lt;/a&gt;, &lt;code&gt;map&lt;/code&gt;, and &lt;code&gt;withFilter&lt;/code&gt;. Used with &lt;a href="#optiona"&gt;Option&lt;/a&gt;, &lt;a href="#futuret"&gt;Future&lt;/a&gt;, &lt;a href="#eitherl-r"&gt;Either&lt;/a&gt;, etc. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/for-comprehensions/"&gt;For Comprehension Details&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Functor&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A &lt;a href="#type-class"&gt;Type Class&lt;/a&gt; with a &lt;code&gt;map&lt;/code&gt; operation. Transforms values inside a container. Foundation of &lt;a href="#applicative"&gt;Applicative&lt;/a&gt; and &lt;a href="#monad"&gt;Monad&lt;/a&gt;. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/functional-patterns/"&gt;Functional Patterns&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Future[T]&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A type representing an asynchronous computation not yet completed. Requires &lt;a href="#executioncontext"&gt;ExecutionContext&lt;/a&gt;. Sequential execution possible with &lt;a href="#for-comprehension"&gt;For Comprehension&lt;/a&gt;. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/concurrency/"&gt;Concurrency&lt;/a&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;h4 id="g"&gt;G&lt;a class="anchor" href="#g"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;Given (Scala 3)&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;Keyword for defining &lt;a href="#type-class"&gt;Type Class&lt;/a&gt; instances. Replaces Scala 2&amp;rsquo;s &lt;a href="#implicit-scala-2"&gt;implicit&lt;/a&gt; &lt;code&gt;val&lt;/code&gt;. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/examples/scala2-vs-scala3/"&gt;Scala 2 vs 3 Comparison&lt;/a&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;h4 id="h"&gt;H&lt;a class="anchor" href="#h"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;Higher-Order Function&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A function that takes functions as arguments or returns a function. Examples: &lt;a href="#flatmap"&gt;map&lt;/a&gt;, &lt;code&gt;filter&lt;/code&gt;, &lt;code&gt;fold&lt;/code&gt;. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/higher-order-functions/"&gt;Higher-Order Functions Details&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Higher-Kinded Type&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A type that takes type constructors as arguments. Form of &lt;code&gt;F[_]&lt;/code&gt;. Essential for defining &lt;a href="#functor"&gt;Functor&lt;/a&gt; and &lt;a href="#monad"&gt;Monad&lt;/a&gt;. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/type-system-advanced/"&gt;Advanced Type System&lt;/a&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;h4 id="i"&gt;I&lt;a class="anchor" href="#i"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;Immutable&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;Something whose state cannot be changed after creation. Scala recommends immutability. Use &lt;a href="#case-class"&gt;Case Class&lt;/a&gt;, &lt;a href="#val"&gt;val&lt;/a&gt;, and immutable &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/collections/"&gt;collections&lt;/a&gt;.&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Implicit (Scala 2)&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;Keyword for defining implicit values, parameters, and conversions. Replaced by &lt;a href="#given-scala-3"&gt;given&lt;/a&gt;/&lt;a href="#using-scala-3"&gt;using&lt;/a&gt; in Scala 3. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/implicits/"&gt;Implicits Details&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Intersection Type (&amp;amp;)&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A type satisfying multiple types. &lt;code&gt;A &amp;amp; B&lt;/code&gt;. Opposite of &lt;a href="#union-type-"&gt;Union Type&lt;/a&gt;. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/type-system-advanced/"&gt;Advanced Type System&lt;/a&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;E-I Key Points&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Either/Option&lt;/strong&gt;: Used instead of null, functional approach to error handling&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;flatMap&lt;/strong&gt;: Core of Monad, elegantly expressed with for comprehension&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;given/using&lt;/strong&gt; (Scala 3): Clear syntax replacing &lt;code&gt;implicit&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;h4 id="l"&gt;L&lt;a class="anchor" href="#l"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;Lazy val&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A value whose initialization is deferred until first access. Useful for expensive initialization. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/basics/"&gt;Basics&lt;/a&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;h4 id="m"&gt;M&lt;a class="anchor" href="#m"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;Match Expression&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;An expression that branches based on value patterns. Powerful version of &lt;code&gt;switch&lt;/code&gt;. Optimized for &lt;a href="#case-class"&gt;Case Class&lt;/a&gt; and &lt;a href="#sealed"&gt;Sealed&lt;/a&gt; traits. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/pattern-matching/"&gt;Pattern Matching Details&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Monad&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A &lt;a href="#type-class"&gt;Type Class&lt;/a&gt; with &lt;a href="#flatmap"&gt;flatMap&lt;/a&gt; and &lt;code&gt;pure&lt;/code&gt; operations. Composes sequential effects. &lt;a href="#optiona"&gt;Option&lt;/a&gt;, &lt;a href="#eitherl-r"&gt;Either&lt;/a&gt;, &lt;a href="#futuret"&gt;Future&lt;/a&gt; are Monads. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/functional-patterns/"&gt;Functional Patterns&lt;/a&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;h4 id="o"&gt;O&lt;a class="anchor" href="#o"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;Object&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;Keyword for defining singleton instances. See &lt;a href="#companion-object"&gt;Companion Object&lt;/a&gt;. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/classes-objects/"&gt;Classes and Objects&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Opaque Type (Scala 3)&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A type that appears different externally but is identical to its base type internally. Type safety without runtime overhead. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/appendix/version-comparison/"&gt;Scala 3 Feature Comparison&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Option[A]&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A type representing the presence (&lt;code&gt;Some&lt;/code&gt;) or absence (&lt;code&gt;None&lt;/code&gt;) of a value. Replacement for &lt;code&gt;null&lt;/code&gt;. Safely handled with &lt;a href="#flatmap"&gt;flatMap&lt;/a&gt; and &lt;a href="#for-comprehension"&gt;For Comprehension&lt;/a&gt;. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/basics/"&gt;Basics&lt;/a&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;L-O Key Points&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;lazy val&lt;/strong&gt;: Defers expensive initialization until first use&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Monad&lt;/strong&gt;: &lt;code&gt;flatMap&lt;/code&gt; + &lt;code&gt;pure&lt;/code&gt;, core abstraction for sequential effect composition&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Option&lt;/strong&gt;: Type-safe handling with &lt;code&gt;Some&lt;/code&gt;/&lt;code&gt;None&lt;/code&gt; instead of null&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;h4 id="p"&gt;P&lt;a class="anchor" href="#p"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;Partial Function&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A function defined only for some inputs. Same form as &lt;a href="#pattern-matching"&gt;Pattern Matching&lt;/a&gt; cases. Used with the &lt;code&gt;collect&lt;/code&gt; method. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/functions-methods/"&gt;Functions and Methods&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Pattern Matching&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A technique for analyzing value structure and extracting data. Used with &lt;a href="#case-class"&gt;Case Class&lt;/a&gt; and &lt;a href="#sealed"&gt;Sealed&lt;/a&gt; traits. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/pattern-matching/"&gt;Pattern Matching Details&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Promise[T]&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A type allowing direct completion of a &lt;a href="#futuret"&gt;Future&lt;/a&gt;. Used for wrapping callback-based APIs. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/concurrency/"&gt;Concurrency&lt;/a&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;h4 id="r"&gt;R&lt;a class="anchor" href="#r"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;Referential Transparency&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;The property that replacing an expression with its result value doesn&amp;rsquo;t change program meaning. Key characteristic of pure functions. Related to &lt;a href="#immutable"&gt;Immutable&lt;/a&gt; data. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/functional-patterns/"&gt;Functional Patterns&lt;/a&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;h4 id="s"&gt;S&lt;a class="anchor" href="#s"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;Sealed&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A modifier restricting inheritance to the same file only. Used for &lt;a href="#pattern-matching"&gt;Pattern Matching&lt;/a&gt; exhaustiveness checking. Essential for &lt;a href="#adt-algebraic-data-type"&gt;ADT&lt;/a&gt; definitions. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/pattern-matching/"&gt;Pattern Matching&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Singleton Object&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A unique instance defined with the &lt;a href="#object"&gt;Object&lt;/a&gt; keyword. See &lt;a href="#companion-object"&gt;Companion Object&lt;/a&gt;.&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;summon (Scala 3)&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A function to retrieve an implicit instance of a given type. Replaces &lt;a href="#implicit-scala-2"&gt;implicit&lt;/a&gt; &lt;code&gt;implicitly&lt;/code&gt;. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/type-classes/"&gt;Type Classes&lt;/a&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;h4 id="t"&gt;T&lt;a class="anchor" href="#t"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;Tail Recursion&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;Recursion where the last operation is a call to itself. Can be optimized without stack overflow. Verified with &lt;code&gt;@tailrec&lt;/code&gt; annotation. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/functions-methods/"&gt;Functions and Methods&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Trait&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;Similar to Java interfaces but can include implementations. Supports mixin inheritance. Forms &lt;a href="#adt-algebraic-data-type"&gt;ADT&lt;/a&gt; with &lt;a href="#sealed"&gt;Sealed&lt;/a&gt;. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/classes-objects/"&gt;Classes and Objects&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Try[T]&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A type containing the result of a computation that may throw exceptions. Either &lt;code&gt;Success&lt;/code&gt; or &lt;code&gt;Failure&lt;/code&gt;. Similar error handling pattern to &lt;a href="#eitherl-r"&gt;Either&lt;/a&gt; and &lt;a href="#optiona"&gt;Option&lt;/a&gt;. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/basics/"&gt;Basics&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Type Class&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A pattern for adding functionality to existing types. Implements ad-hoc polymorphism. Representative examples: &lt;a href="#functor"&gt;Functor&lt;/a&gt;, &lt;a href="#monad"&gt;Monad&lt;/a&gt;. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/type-classes/"&gt;Type Classes Details&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Type Inference&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;The compiler&amp;rsquo;s ability to automatically infer types. Scala&amp;rsquo;s powerful type inference reduces boilerplate. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/basics/"&gt;Basics&lt;/a&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;P-T Key Points&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Pattern Matching&lt;/strong&gt;: Destructure data structures and branch with &lt;code&gt;match&lt;/code&gt; expressions&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sealed&lt;/strong&gt;: Restricts inheritance to same file, enables pattern matching exhaustiveness checking&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Type Class&lt;/strong&gt;: Add functionality to existing types, implement ad-hoc polymorphism&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;h4 id="u"&gt;U&lt;a class="anchor" href="#u"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;Union Type (|)&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A type representing one of multiple types. &lt;code&gt;Int | String&lt;/code&gt;. Opposite of &lt;a href="#intersection-type-"&gt;Intersection Type&lt;/a&gt;. Scala 3 only. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/type-system-advanced/"&gt;Advanced Type System&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Using (Scala 3)&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;Keyword for declaring implicit parameters. Replaces &lt;a href="#implicit-scala-2"&gt;Implicit&lt;/a&gt;. Pairs with &lt;a href="#given-scala-3"&gt;Given&lt;/a&gt;. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/examples/scala2-vs-scala3/"&gt;Scala 2 vs 3 Comparison&lt;/a&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;h4 id="v"&gt;V&lt;a class="anchor" href="#v"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;val&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;Keyword for declaring &lt;a href="#immutable"&gt;Immutable&lt;/a&gt; values. Compare with &lt;a href="#var"&gt;var&lt;/a&gt;. Default choice in Scala.&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;Keyword for declaring mutable variables. Less recommended than &lt;a href="#val"&gt;val&lt;/a&gt;. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/basics/"&gt;Basics&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Variance&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;Subtyping relationship of type parameters. Covariant (&lt;code&gt;+A&lt;/code&gt;), contravariant (&lt;code&gt;-A&lt;/code&gt;), invariant. Important for collection design. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/variance/"&gt;Variance Details&lt;/a&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;h4 id="y"&gt;Y&lt;a class="anchor" href="#y"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;yield&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;Keyword for generating values in &lt;a href="#for-comprehension"&gt;For Comprehension&lt;/a&gt;. Transformed to &lt;code&gt;map&lt;/code&gt; calls. → &lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/for-comprehensions/"&gt;For Comprehension Details&lt;/a&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;U-Y Key Points&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Union Type&lt;/strong&gt; (&lt;code&gt;|&lt;/code&gt;): Scala 3 only, concise type expression instead of &lt;code&gt;Either&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;val/var&lt;/strong&gt;: Prefer &lt;code&gt;val&lt;/code&gt; (immutable), minimize &lt;code&gt;var&lt;/code&gt; (mutable)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Variance&lt;/strong&gt;: Define type relationships with covariant (&lt;code&gt;+A&lt;/code&gt;), contravariant (&lt;code&gt;-A&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;hr&gt;
&lt;h4 id="next-steps"&gt;Next Steps&lt;a class="anchor" href="#next-steps"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://advanced-beginner.github.io/en/docs/scala/concepts/"&gt;Concepts&lt;/a&gt; - Core Scala concepts&lt;/li&gt;
&lt;li&gt;&lt;a href="https://advanced-beginner.github.io/en/docs/scala/examples/"&gt;Examples&lt;/a&gt; - Learn by coding&lt;/li&gt;
&lt;li&gt;&lt;a href="https://advanced-beginner.github.io/en/docs/scala/examples/spark-integration/"&gt;Spark Integration&lt;/a&gt; - Big data processing&lt;/li&gt;
&lt;li&gt;&lt;a href="https://advanced-beginner.github.io/en/docs/scala/appendix/references/"&gt;References&lt;/a&gt; - Books, courses, community&lt;/li&gt;
&lt;li&gt;&lt;a href="https://advanced-beginner.github.io/en/docs/scala/appendix/faq/"&gt;FAQ&lt;/a&gt; - Frequently asked questions&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Scala 2 vs Scala 3 Version Comparison</title><link>https://advanced-beginner.github.io/en/docs/scala/appendix/version-comparison/</link><pubDate>Wed, 14 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/scala/appendix/version-comparison/</guid><description>&lt;p&gt;An overview of the main differences between Scala 2 and Scala 3. Scala 3, released in 2020, provides more concise syntax, a more powerful type system, and improved implicit features.&lt;/p&gt;
&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;New Projects&lt;/strong&gt;: Scala 3 recommended (more concise syntax, improved type system)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Using Spark&lt;/strong&gt;: Maintain Scala 2.12/2.13 (Spark doesn&amp;rsquo;t support Scala 3 yet)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Key Changes&lt;/strong&gt;: &lt;code&gt;implicit&lt;/code&gt; → &lt;code&gt;given&lt;/code&gt;/&lt;code&gt;using&lt;/code&gt;, indentation-based syntax, &lt;code&gt;enum&lt;/code&gt; added&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Compatibility&lt;/strong&gt;: Scala 3 can use Scala 2.13 libraries&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Migration&lt;/strong&gt;: Gradual transition with &lt;code&gt;-source:3.0-migration&lt;/code&gt; option&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;h4 id="new-features-scala-3"&gt;New Features (Scala 3)&lt;a class="anchor" href="#new-features-scala-3"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Major features added in Scala 3, organized by category.&lt;/p&gt;</description></item><item><title>FAQ</title><link>https://advanced-beginner.github.io/en/docs/scala/appendix/faq/</link><pubDate>Wed, 14 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/scala/appendix/faq/</guid><description>&lt;p&gt;Frequently asked questions and answers about Scala. Questions are categorized for quick access to the information you need.&lt;/p&gt;
&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Version Choice&lt;/strong&gt;: Scala 3 for new projects, Scala 2.12/2.13 when using Spark&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;val vs var&lt;/strong&gt;: Always prefer &lt;code&gt;val&lt;/code&gt; (immutable)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Instead of null&lt;/strong&gt;: Use &lt;code&gt;Option&lt;/code&gt;, &lt;code&gt;Some&lt;/code&gt;, &lt;code&gt;None&lt;/code&gt; for safe null handling&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;IDE&lt;/strong&gt;: IntelliJ IDEA + Scala plugin (most mature)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Performance&lt;/strong&gt;: Equivalent to Java, watch out for collection chaining and lambda usage&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;h4 id="general"&gt;General&lt;a class="anchor" href="#general"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;General questions about learning Scala.&lt;/p&gt;</description></item><item><title>References</title><link>https://advanced-beginner.github.io/en/docs/scala/appendix/references/</link><pubDate>Wed, 14 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/scala/appendix/references/</guid><description>&lt;p&gt;A collection of reference materials helpful for learning Scala. Resources are categorized from official documentation to books, online courses, and communities.&lt;/p&gt;
&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;TL;DR - Top Recommendations&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Official Docs&lt;/strong&gt;: &lt;a href="https://docs.scala-lang.org/scala3/book/introduction.html"&gt;Scala 3 Book&lt;/a&gt; - Step-by-step tutorial&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Beginner Book&lt;/strong&gt;: &amp;ldquo;Scala for the Impatient&amp;rdquo; - Optimal for quick learning&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Functional Deep Dive&lt;/strong&gt;: &amp;ldquo;Scala with Cats&amp;rdquo; (free online) - Master type classes&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Online Practice&lt;/strong&gt;: &lt;a href="https://scastie.scala-lang.org/"&gt;Scastie&lt;/a&gt; - Run code instantly in browser&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Community&lt;/strong&gt;: &lt;a href="https://discord.gg/scala"&gt;Scala Discord&lt;/a&gt; - Real-time Q&amp;amp;A&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;h4 id="official-documentation"&gt;Official Documentation&lt;a class="anchor" href="#official-documentation"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Official Scala site and documentation provide the most accurate and up-to-date information.&lt;/p&gt;</description></item></channel></rss>