If you are not sure if the website you would like to visit is secure, you can verify it here. Enter the website address of the page and see parts of its content and the thumbnail images on this site. None (if any) dangerous scripts on the referenced page will be executed. Additionally, if the selected site contains subpages, you can verify it (review) in batches containing 5 pages.
favicon.ico: web.archive.org/web/20221217042112/https://en.wikipedia.org/wiki/Scala_%28programming_language%29 - Scala (programming language) -.

site address: web.archive.org/web/20221214161617/https://en.wikipedia.org/wiki/Scala_(programming_language) redirected to: web.archive.org/web/20221217042112/https://en.wikipedia.org/wiki/Scala_%28programming_language%29

site title: Scala (programming language) - Wikipedia

Our opinion (on Monday 05 October 2026 8:05:42 UTC):

GREEN status (no comments) - no comments
After content analysis of this website we propose the following hashtags:



Meta tags:

Headings (most frequently used words):

edit, type, and, with, other, example, language, languages, navigation, classes, system, tools, functions, scala, programming, contents, history, platforms, license, examples, features, reference, to, java, concurrency, cluster, computing, testing, versions, comparison, jvm, adoption, criticism, see, also, references, further, reading, menu, compilers, targets, hello, world, basic, syntactic, flexibility, unified, for, expressions, functional, tendencies, object, oriented, extensions, expressive, enrichment, rankings, companies, personal, namespaces, views, contribute, print, export, in, projects, everything, is, an, expression, inference, anonymous, immutability, lazy, non, strict, evaluation, tail, recursion, case, pattern, matching, partial,

Text of the page (most frequently used words):
the (383), scala (371), and (233), retrieved (126), java (107), for (96), with (88), that (77), org (76), are (76), lang (73), type (68), this (55), 2014 (54), can (53), #programming (51), now (49), types (47), available (46), from (46), language (46), #object (45), class (43), list (43), 2021 (40), edit (38), code (37), which (36), languages (34), 2015 (34), function (33), also (32), int (32), other (31), new (30), methods (30), def (27), method (27), foo (27), version (26), example (26), classes (26), 2013 (25), 2011 (25), 2016 (25), case (25), return (25), using (24), more (24), pattern (24), value (24), may (23), 2022 (23), 2017 (23), val (23), uses (23), functions (23), functional (22), has (22), 2018 (22), library (21), only (21), double (21), july (20), compiler (20), support (20), not (19), system (19), odersky (19), software (18), matching (18), jvm (18), its (18), immutable (18), march (17), used (17), expressions (17), written (17), declared (17), variable (17), articles (16), oriented (16), martin (16), 2006 (16), such (16), same (16), variables (16), use (15), june (15), 2020 (15), similar (15), but (15), point (15), tail (15), all (14), source (14), april (14), implicit (14), static (14), syntax (14), between (14), map (14), draw (14), platform (13), data (13), instead (13), collection (13), like (13), anonymous (13), parameters (13), match (13), expression (13), pivot (13), was (12), changes (12), framework (12), standard (12), objects (12), 2019 (12), com (12), have (12), they (12), than (12), time (12), features (12), when (12), abstract (12), println (12), into (12), non (11), statements (11), net (11), github (11), akka (11), any (11), keyword (11), qsort (11), math (11), num (11), october (10), basic (10), web (10), january (10), original (10), 2010 (10), collections (10), 2007 (10), will (10), extends (10), see (10), one (10), result (10), first (10), explicitly (10), singleton (10), following (10), call (10), operator (10), reference (10), numsquare (10), wikipedia (9), inc (9), license (9), apache (9), based (9), lisp (9), haskell (9), machine (9), 2008 (9), open (9), play (9), string (9), traits (9), world (9), these (9), partial (9), public (9), allows (9), trait (9), private (9), nil (9), final (9), inference (9), statement (8), pdf (8), history (8), september (8), short (8), typed (8), virtual (8), common (8), isbn (8), november (8), rest (8), would (8), two (8), archived (8), update (8), defined (8), there (8), evaluation (8), experimental (8), some (8), var (8), 2004 (8), above (8), element (8), strict (8), hello (8), here (7), free (7), libraries (7), lists (7), groovy (7), clojure (7), december (7), 978 (7), part (7), 2012 (7), parallel (7), dynamic (7), release (7), called (7), known (7), mutable (7), built (7), their (7), back (7), end (7), many (7), need (7), makes (7), needed (7), testing (7), allow (7), differences (7), name (7), bytecode (7), improvements (7), implementation (7), lazy (7), tuples (7), since (7), automatically (7), window (7), even (7), rather (7), just (7), boolean (7), syntactic (7), addtogrid (7), special (6), identifiers (6), references (6), created (6), kotlin (6), performance (6), less (6), real (6), times (6), rankings (6), then (6), supports (6), number (6), shows (6), place (6), most (6), model (6), where (6), changed (6), default (6), named (6), over (6), constructor (6), runtime (6), array (6), released (6), provides (6), message (6), actor (6), form (6), import (6), super (6), always (6), note (6), smaller (6), scheme (6), elements (6), distinction (6), native (6), about (5), under (5), apply (5), you (5), file (5), what (5), log (5), containing (5), needing (5), concurrent (5), https (5), index (5), control (5), technologies (5), development (5), artima (5), further (5), video (5), learning (5), twitter (5), technology (5), popularity (5), good (5), parts (5), applications (5), were (5), extensions (5), equivalent (5), allowing (5), extension (5), cannot (5), program (5), while (5), provide (5), members (5), second (5), still (5), both (5), versions (5), each (5), thread (5), operators (5), nothing (5), returning (5), unit (5), allowed (5), returns (5), technique (5), existing (5), through (5), calls (5), run (5), inheritance (5), possible (5), titledecoration (5), override (5), parentheses (5), format (5), examples (5), unnecessary (5), braces (5), fact (5), yield (5), parens (5), directly (5), view (4), additional (4), page (4), last (4), simple (4), projects (4), tools (4), community (4), portal (4), help (4), main (4), account (4), compilers (4), 2003 (4), statically (4), category (4), javascript (4), erlang (4), comparison (4), visual (4), platforms (4), implementations (4), services (4), application (4), sun (4), process (4), android (4), design (4), mar (4), linkedin (4), done (4), ago (4), months (4), series (4), three (4), guardian (4), february (4), releases (4), futures (4), promises (4), xml (4), documentation (4), communicating (4), make (4), concise (4), pimp (4), research (4), august (4), computing (4), typesafe (4), lausanne (4), send (4), due (4), included (4), spark (4), general (4), certain (4), very (4), right (4), various (4), alternative (4), ranked (4), popular (4), including (4), typing (4), thus (4), flexibility (4), programs (4), been (4), compared (4), addition (4), distribution (4), old (4), generic (4), structural (4), comprehensions (4), referenced (4), companion (4), instance (4), concurrency (4), separate (4), iseven (4), enrichment (4), added (4), because (4), interfaces (4), declarations (4), however (4), mixed (4), whose (4), simplewindow (4), verticalscrollbardecoration (4), horizontalscrollbardecoration (4), calling (4), bar (4), windowdecoration (4), must (4), every (4), compatible (4), way (4), integers (4), parameter (4), partition (4), body (4), exception (4), adds (4), without (4), local (4), empty (4), algebraic (4), recursive (4), else (4), set (4), unlike (4), block (4), mentions (4), user (4), vector (4), curly (4), side (4), tostring (4), compiling (4), distancebetweenpoints (4), grid (4), designed (4), mathfunction (4), terms (3), english (3), wikibooks (3), related (3), random (3), navigation (3), read (3), views (3), talk (3), potentially (3), dated (3), unsourced (3), swift (3), pascal (3), assembly (3), micro (3), execution (3), access (3), domain (3), computer (3), microsystems (3), conferences (3), processing (3), patterns (3), suereth (3), 2nd (3), reilly (3), chisel (3), krikorian (3), raffi (3), event (3), take (3), compilation (3), transactional (3), high (3), soundcloud (3), building (3), apis (3), switching (3), online (3), apple (3), engineering (3), coursera (3), why (3), lightbend (3), 2009 (3), how (3), company (3), thoughtworks (3), radar (3), state (3), redmonk (3), macros (3), overview (3), prokopec (3), aleksandar (3), sip (3), interpolation (3), jul (3), epfl (3), dropped (3), change (3), paul (3), build (3), introduced (3), adding (3), generate (3), overhead (3), intpredicates (3), should (3), speed (3), acm (3), tailcalls (3), api (3), rich (3), structures (3), implemented (3), 117 (3), started (3), backend (3), off (3), commercial (3), team (3), école (3), polytechnique (3), fédérale (3), generation (3), toolkit (3), group (3), next (3), criticism (3), stack (3), announced (3), large (3), adoption (3), frameworks (3), made (3), specific (3), strong (3), definition (3), below (3), after (3), regarding (3), hand (3), paradigms (3), ways (3), found (3), combination (3), compile (3), faster (3), requires (3), optional (3), annotations (3), cases (3), although (3), implicits (3), literal (3), generated (3), actors (3), exactly (3), replaces (3), extended (3), values (3), fields (3), parent (3), constructors (3), protected (3), brackets (3), visibility (3), regular (3), semicolons (3), infix (3), completely (3), closures (3), several (3), multiple (3), executable (3), order (3), cluster (3), fromurl (3), echoserver (3), receive (3), includes (3), conversion (3), myextensions (3), typically (3), given (3), able (3), unless (3), indicates (3), expressive (3), could (3), providing (3), try (3), handling (3), together (3), specified (3), style (3), section (3), turn (3), arbitrary (3), strings (3), provided (3), recursion (3), server (3), later (3), immutability (3), sqrt (3), argument (3), ate (3), apples (3), similarly (3), void (3), higher (3), normally (3), iterating (3), key (3), mention (3), mentioned (3), users (3), translated (3), purpose (3), accessor (3), toint (3), cbrt (3), helloworld (3), targets (3), developers (2), contact (2), privacy (2), policy (2), site (2), wikimedia (2), foundation (2), commons (2), links (2), print (2), wikidata (2), cite (2), upload (2), recent (2), learn (2), article (2), current (2), contents (2), create (2), categories (2), sudoc (2), clarification (2), description (2), different (2), scripting (2), programmed (2), php (2), title (2), scala_ (2), france (2), smalltalk (2), shell (2), ruby (2), python (2), perl (2), small (2), oxygene (2), powershell (2), major (2), microsoft (2), global (2), security (2), architecture (2), infrastructure (2), people (2), oracle (2), jruby (2), spring (2), third (2), party (2), spoon (2), lex (2), venners (2), bill (2), 1st (2), monadic (2), media (2), 134 (2), step (2), reading (2), hardware (2), scott (2), kevin (2), getting (2), occurs (2), years (2), engineer (2), before (2), productive (2), writing (2), conference (2), scalacon (2), brought (2), exchange (2), days (2), hmrc (2), duolingo (2), engine (2), nurun (2), redesigned (2), walmart (2), canada (2), nest (2), greg (2), soltis (2), skills (2), matter (2), morgan (2), stanley (2), finagle (2), kops (2), alexander (2), zalando (2), airbnb (2), aerosolve (2), package (2), senior (2), updating (2), comes (2), remember (2), milk (2), app (2), infoq (2), signal (2), huffington (2), post (2), brings (2), york (2), blackbeard (2), jarrod (2), nettles (2), lift (2), future (2), gilt (2), behind (2), tiobe (2), goodness (2), burmako (2), eugene (2), miller (2), heather (2), reflection (2), haller (2), philipp (2), josh (2), nov (2), dotty (2), literals (2), scalamock (2), preview (2), scalacheck (2), introduction (2), scalatest (2), yan (2), kay (2), tour (2), eliminate (2), actual (2), anyval (2), intpredicate (2), enrich (2), your (2), arxiv (2), proceedings (2), 12th (2), systems (2), scaladoc (2), util (2), dougherty (2), blog (2), concrete (2), project (2), virtualized (2), aimed (2), rompf (2), 120 (2), request (2), krill (2), infoworld (2), down (2), variant (2), longer (2), takes (2), wraps (2), modern (2), grant (2), doi (2), effect (2), frequently (2), asked (2), questions (2), interoperability (2), 642 (2), rc3 (2), distributed (2), tool (2), former (2), stated (2), moved (2), reasons (2), curve (2), finance (2), module (2), generates (2), teams (2), mostly (2), unfiltered (2), power (2), newspaper (2), content (2), internal (2), website (2), had (2), companies (2), opinion (2), described (2), edition (2), survey (2), places (2), prior (2), year (2), 14th (2), placed (2), ahead (2), 116 (2), overflow (2), search (2), 15th (2), searches (2), jan (2), highly (2), significantly (2), top (2), similarity (2), inherits (2), being (2), advanced (2), developer (2), complex (2), almost (2), contrast (2), generally (2), avoid (2), practically (2), dynamically (2), arguments (2), preferred (2), important (2), often (2), exist (2), interface (2), removed (2), deprecated (2), groups (2), diagrams (2), flag (2), rewritten (2), turned (2), dependent (2), anyref (2), safe (2), functionality (2), initialized (2), combined (2), self (2), attributes (2), renamed (2), qualifiers (2), integrated (2), definitions (2), restricted (2), 2005 (2), inner (2), styles (2), well (2), stream (2), memory (2), currenttimemillis (2), par (2), urls (2), url (2), improve (2), msg (2), messages (2), them (2), originally (2), simply (2), scope (2), true (2), isodd (2), add (2), termed (2), concerns (2), powerful (2), conversions (2), error (2), enforces (2), abstractions (2), words (2), executed (2), require (2), linear (2), chain (2), mix (2), another (2), mywin (2), scrollbar (2), work (2), led (2), nearly (2), specially (2), composition (2), mixin (2), pure (2), behaviors (2), problems (2), bind (2), never (2), normal (2), alone (2), quicksort (2), nfe (2), switch (2), colon (2), either (2), symbols (2), serve (2), declaration (2), placeholder (2), happens (2), tuple (2), stored (2), matches (2), holding (2), algorithm (2), perspective (2), during (2), optimization (2), itself (2), declare (2), linked (2), things (2), actually (2), convention (2), variants (2), imported (2), copy (2), prepending (2), node (2), half (2), modified (2), reassigned (2), shorter (2), capture (2), enclosing (2), specifying (2), inferred (2), factorial (2), omitted (2), essentially (2), printvalue (2), hexdigit (2), means (2), logically (2), sources (2), does (2), everything (2), currying (2), supporting (2), tendencies (2), democratic (2), politicians (2), running (2), imperative (2), foreach (2), filter (2), flatmap (2), primitive (2), level (2), integer (2), unified (2), lines (2), fill (2), breakable (2), getter (2), setter (2), foolike (2), names (2), effects (2), exceptions (2), underlying (2), identical (2), hood (2), goes (2), hypot (2), distancetopoint (2), signo (2), asinstanceof (2), preceded (2), entered (2), option (2), helloworld2 (2), command (2), making (2), runs (2), compiles (2), llvm (2), million (2), followed (2), compiled (2), influenced (2), paradigm (2), jump (2), dec (2), cookie, statistics, mobile, disclaimers, text, agree, registered, trademark, profit, organization, creative, attribution, sharealike, edited, utc, tiếng, việt, українська, türkçe, తెలుగు, svenska, suomi, српски, srpski, русский, română, português, polski, norsk, bokmål, 日本語, nederlands, മലയാളം, lietuvių, latviešu, עברית, italiano, bahasa, indonesia, hrvatski, հայերեն, 한국어, galego, français, فارسی, esperanto, español, ελληνικά, eesti, deutsch, dansk, čeština, català, български, azərbaycanca, العربية, printable, download, export, item, information, permanent, link, pages, contribute, donate, events, namespaces, contributions, logged, personal, menu, hidden, nkc, lccn, j9u, gnd, bnf, interpreters, cross, family, programming_language, oldid, 1115097625, czech, republic, united, states, israel, germany, national, authority, generational, categorical, alphabetical, simula, sql, rust, prolog, lua, fortran, forth, cobol, apl, algol, ada, timeline, phalanger, nemerle, jscript, ironruby, ironpython, ironscheme, cli, cobra, boo, axum, dotgnu, mono, compact, metadata, manifest, cache, delegate, components, invocation, instructions, intermediate, patrick, naughton, urs, hölzle, arthur, van, hoff, james, gosling, laboratories, corporation, organizations, devoxx, javaone, rhino, jython, beanshell, wildfly, toplink, struts, jazelle, icedtea, hibernate, harmony, gwt, gnu, classpath, eclipse, blackdown, modules, pack200, start, jnlp, jsf, jsp, midlets, servlets, applets, maxine, javafx, openjdk, kit, squawk, sdk, card, enterprise, jakarta, ebook, meredith, gregory, 300, joshua, 935182, 225, manning, publications, depth, wampler, dean, payne, alex, 583, 491, 94985, scalability, horstmann, cay, 384, 54056, addison, wesley, professional, impatient, 4th, 896, 9815316, comprehensive, guide, book, topic, berkeley, apsire, constructing, embedded, hale, coda, codahale, story, quora, rid, differently, four, rewrite, fully, complete, architecting, fly, lviv, oleh, zasadnyy, gdg, repository, horie, andré, rewriting, launches, lee, mighdoll, jobs, customer, studies, calçado, phil, products, iii, microservices, tech, novet, jordan, announces, life, meetups, deserve, synodinos, dionysios, study, voldemort, binstock, andrew, dobb, journal, interview, pavley, john, sneak, peek, huffpost, collaboration, newsroom, roy, suman, sundaresan, krishna, syndication, powered, heise, david, reid, tania, teixeira, bbc, ready, pay, news, alvin, job, openings, love, groupe, greene, kate, mit, review, secret, growth, helping, handle, increasing, faq, grady, stephen, cve, 15288, modularizing, harrah, mark, universal, feb, aug, butcher, paulbutcher, workwithplay, nilsson, rickard, micha, hascode, packt, publishing, docs, parallelcollections, sufrin, bernard, welch, stepney, polack, barnes, mcewan, stiles, broenink, sampson, eds, 1586039073, architectures, wotug, producing, instantiations, virtually, stackexchange, gilbert, clint, highest, priority, succeed, corporate, debate, giarrusso, paolo, reify, queries, modularity, 2012arxiv1210, 6284g, bibcode, 1210, 6284, annual, international, aspect, unsound, removing, restrictions, adriaan, moors, tiark, sigplan, workshop, manipulation, lostlake, home, expunged, paulp, pull, 1718, moves, closer, bare, metal, scaled, cuts, ties, cloud, pioneer, his, gains, backing, invested, demand, wins, erc, specification, 1145, 2591013, communications, unifying, brief, loverdo, christos, xiii, 9781139490948, cambridge, university, press, steps, expt, youtube, potvin, bonja, mario, lecture, notes, science, vol, 7916, 1214469, s2cid, 38910, 1007, 38911, 1509, 07326, ims, dsl, developed, ericsson, mountain, california, 9780981531601, experiment, better, component, fogus, michael, paramedics, martinodersky, tolist, notice, lampepfl, tag, 153, widely, sbt, chosen, month, svp, decision, minimize, dependence, away, incompatibility, 152, yammer, 151, 150, 149, government, tax, 148, lessons, 147, 146, within, acquisitions, 145, 144, firebase, alphabet, google, extensively, asset, 143, big, databricks, employing, scalding, 142, 141, 140, develops, 139, seeking, 138, verizon, updates, 137, 136, meetup, 135, microframework, scalatra, swiss, bank, approved, production, ubs, employ, delivery, 133, athena, revealed, management, 132, traffic, 131, 130, 129, along, 128, 127, 126, 125, foursquare, 124, switched, portions, intended, convert, 123, biannual, report, technologists, recommended, assessment, refers, successfully, creating, own, 122, 121, collected, 5160, topics, relative, among, fell, overtaken, rose, 119, establishes, ranks, inside, tier, typescript, objective, employs, internet, publication, counting, determine, 31st, ranking, 38th, 19th, tracks, tutorials, downward, trend, 17th, 3rd, 118, usually, much, follows, appearance, philosophy, citation, strongly, focused, reducing, verbosity, deemphasised, strength, facilities, tries, agnostic, letting, choose, thereof, difficult, understand, errors, caught, ensure, correctness, slower, greater, simplicity, reduced, enhanced, instruction, advances, reduce, gap, choice, efficiency, invoke, substantial, extent, apr, 115, 114, 113, 112, 111, 110, 109, 108, 107, 106, optimizations, unification, 105, jun, 104, sep, 103, 102, 101, 100, sam, required, dbc, floating, octal, deprecation, deprecations, cleanup, istraversableonce, istraversablelike, notimplementederror, partialfunctions, fixes, treeset, treemap, forkjoin, range, sum, inliner, configurable, custom, pools, modularized, graphviz, matcher, scratch, robust, exponential, blow, analyses, independent, latter, xno, patmat, analysis, emitter, asm, emits, target, jdk, says, got, identity, applydynamic, interop, delayedinit, improved, specialisation, revision, uniform, encompassing, supported, existential, arty, underscores, assignment, aliases, primary, marked, round, modifiers, accept, qualifier, null, allref, distinguished, don, tightened, lookup, generalised, vice, versa, sbaz, prefixed, admit, sequence, newlines, separators, connective, clause, keywords, generics, parameterless, near, replaced, iterable, elem, buffer, revised, bsd, enumeration, test, integrate, specifications, curried, testng, junit, specs2, quickcheck, solution, additionally, queue, publish, subscribe, kafka, besides, asynchronous, streams, parallelism, mkstring, getlines, echo, become, act, mailbox, overriding, exclamation, actorof, csp, channel, passing, via, jcsp, sequential, processes, transactors, importing, bring, gets, unaffected, imports, raised, phrasing, negative, connotations, immaturity, concept, limited, implement, involves, declaring, receiving, applicable, question, practice, sake, clarity, infer, annotation, variance, upper, lower, bounds, polymorphic, compound, path, equipped, coherent, particular, sound, threaded, eventually, prone, doesn, encapsulating, forwarding, isn, relying, initialization, entity, relationships, achieved, long, disadvantage, ins, decorator, though, none, inherited, vertical, horizontal, enough, replacement, contain, convenience, awkward, reimplemented, extending, published, backwards, impossible, lacking, behaves, chained, sense, flexible, mechanism, subclassing, res32, single, finally, doing, numberformatexception, catch, consists, prevailing, portion, notation, associative, onto, beginning, appends, appear, despite, appearances, applied, period, line, append, cons, differ, containers, fixed, size, differing, easiest, fetching, tried, determines, simultaneously, according, associated, head, semantically, established, let, bindings, destructures, idea, recursively, sort, paste, results, strategy, fast, sorting, algorithms, mergesort, divide, conquer, thought, sophisticated, extensible, matched, booleans, nesting, automatic, manually, deep, comparisons, hashing, destructuring, commonly, extensive, limitations, complicate, optimized, mutually, suggested, workaround, trampoline, optionally, annotated, tailrec, trampolines, eager, evaluates, soon, meaning, produce, evaluated, until, semantic, fit, produced, triggers, possibly, located, somewhere, encouraged, updated, destructively, consisting, appending, inserting, middle, keep, sharing, easy, locks, shared, ever, persistent, shallowly, guaranteed, concisely, behave, lexically, environment, those, modify, convenient, exists, specifies, compares, neither, nor, lambda, formatapples, deduce, purely, facilitate


Text of the page (random words):
p x y p y public double getx return x public double gety return y double distancetopoint final point other return distancebetweenpoints x y other x other y private static point grid new point static double distancebetweenpoints final double x1 final double y1 final double x2 final double y2 return math hypot x1 x2 y1 y2 scala class point val x double val y double addtogrid boolean false import point _ if addtogrid grid addtogrid this def this this 0 0 0 0 def distancetopoint other point distancebetweenpoints x y other x other y object point private val grid new point def distancebetweenpoints x1 double y1 double x2 double y2 double math hypot x1 x2 y1 y2 the code above shows some of the conceptual differences between java and scala s handling of classes scala has no static variables or methods instead it has singleton objects which are essentially classes with only one instance singleton objects are declared using object instead of class it is common to place static variables and methods in a singleton object with the same name as the class name which is then known as a companion object 15 the underlying class for the singleton object has a appended hence for class foo with companion object object foo under the hood there s a class foo containing the companion object s code and one object of this class is created using the singleton pattern in place of constructor parameters scala has class parameters which are placed on the class similar to parameters to a function when declared with a val or var modifier fields are also defined with the same name and automatically initialized from the class parameters under the hood external access to public fields always goes through accessor getter and mutator setter methods which are automatically created the accessor function has the same name as the field which is why it s unnecessary in the above example to explicitly declare accessor methods note that alternative constructors can also be declared as in java code that would go into the default constructor other than initializing the member variables goes directly at class level default visibility in scala is public features with reference to java edit scala has the same compiling model as java and c namely separate compiling and dynamic class loading so that scala code can call java libraries scala s operational characteristics are the same as java s the scala compiler generates byte code that is nearly identical to that generated by the java compiler 15 in fact scala code can be decompiled to readable java code with the exception of certain constructor operations to the java virtual machine jvm scala code and java code are indistinguishable the only difference is one extra runtime library scala library jar 30 scala adds a large number of features compared with java and has some fundamental differences in its underlying model of expressions and types which make the language theoretically cleaner and eliminate several corner cases in java from the scala perspective this is practically important because several added features in scala are also available in c syntactic flexibility edit as mentioned above scala has a good deal of syntactic flexibility compared with java the following are some examples semicolons are unnecessary lines are automatically joined if they begin or end with a token that cannot normally come in this position or if there are unclosed parentheses or brackets any method can be used as an infix operator e g d apples format num and d apples format num are equivalent in fact arithmetic operators like and are treated just like any other methods since function names are allowed to consist of sequences of arbitrary symbols with a few exceptions made for things like parens brackets and braces that must be handled specially the only special treatment that such symbol named methods undergo concerns the handling of precedence methods apply and update have syntactic short forms foo where foo is a value singleton object or class instance is short for foo apply and foo 42 is short for foo update 42 similarly foo 42 is short for foo apply 42 and foo 4 2 is short for foo update 4 2 this is used for collection classes and extends to many other cases such as stm cells scala distinguishes between no parens def foo 42 and empty parens def foo 42 methods when calling an empty parens method the parentheses may be omitted which is useful when calling into java libraries that do not know this distinction e g using foo tostring instead of foo tostring by convention a method should be defined with empty parens when it performs side effects method names ending in colon expect the argument on the left hand side and the receiver on the right hand side for example the 4 2 nil is the same as nil 2 4 the first form corresponding visually to the result a list with first element 4 and second element 2 class body variables can be transparently implemented as separate getter and setter methods for trait foolike var bar int an implementation may be object foo extends foolike private var x 0 def bar x def bar_ value int x value the call site will still be able to use a concise foo bar 42 the use of curly braces instead of parentheses is allowed in method calls this allows pure library implementations of new control structures 31 for example breakable if break looks as if breakable was a language defined keyword but really is just a method taking a thunk argument methods that take thunks or functions often place these in a second parameter list allowing to mix parentheses and curly braces syntax vector fill 4 math random is the same as vector fill 4 math random the curly braces variant allows the expression to span multiple lines for expressions explained further down can accommodate any type that defines monadic methods such as map flatmap and filter by themselves these may seem like questionable choices but collectively they serve the purpose of allowing domain specific languages to be defined in scala without needing to extend the compiler for example erlang s special syntax for sending a message to an actor i e actor message can be and is implemented in a scala library without needing language extensions unified type system edit java makes a sharp distinction between primitive types e g int and boolean and reference types any class only reference types are part of the inheritance scheme deriving from java lang object in scala all types inherit from a top level class any whose immediate children are anyval value types such as int and boolean and anyref reference types as in java this means that the java distinction between primitive types and boxed types e g int vs integer is not present in scala boxing and unboxing is completely transparent to the user scala 2 10 allows for new value types to be defined by the user for expressions edit instead of the java foreach loops for looping through an iterator scala has for expressions which are similar to list comprehensions in languages such as haskell or a combination of list comprehensions and generator expressions in python for expressions using the yield keyword allow a new collection to be generated by iterating over an existing one returning a new collection of the same type they are translated by the compiler into a series of map flatmap and filter calls where yield is not used the code approximates to an imperative style loop by translating to foreach a simple example is val s for x 1 to 25 if x x 50 yield 2 x the result of running it is the following vector vector 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 note that the expression 1 to 25 is not special syntax the method to is rather defined in the standard scala library as an extension method on integers using a technique known as implicit conversions 32 that allows new methods to be added to existing types a more complex example of iterating over a map is given a map specifying twitter users mentioned in a set of tweets and number of times each user was mentioned look up the users in a map of known politicians and return a new map giving only the democratic politicians as objects rather than strings val dem_mentions for mention times mentions account accounts get mention if account party democratic yield account times expression mention times mentions is an example of pattern matching see below iterating over a map returns a set of key value tuples and pattern matching allows the tuples to easily be destructured into separate variables for the key and value similarly the result of the comprehension also returns key value tuples which are automatically built back up into a map because the source object from the variable mentions is a map note that if mentions instead held a list set array or other collection of tuples exactly the same code above would yield a new collection of the same type functional tendencies edit while supporting all of the object oriented features available in java and in fact augmenting them in various ways scala also provides a large number of capabilities that are normally found only in functional programming languages together these features allow scala programs to be written in an almost completely functional style and also allow functional and object oriented styles to be mixed examples are no distinction between statements and expressions type inference anonymous functions with capturing semantics i e closures immutable variables and objects lazy evaluation delimited continuations since 2 8 higher order functions nested functions currying pattern matching algebraic data types through case classes tuples everything is an expression edit this section does not cite any sources please help improve this section by adding citations to reliable sources unsourced material may be challenged and removed june 2013 learn how and when to remove this template message unlike c or java but similar to languages such as lisp scala makes no distinction between statements and expressions all statements are in fact expressions that evaluate to some value functions that would be declared as returning void in c or java and statements like while that logically do not return a value are in scala considered to return the type unit which is a singleton type with only one object of that type functions and operators that never return at all e g the throw operator or a function that always exits non locally using an exception logically have return type nothing a special type containing no objects that is a bottom type i e a subclass of every possible type this in turn makes type nothing compatible with every type allowing type inference to function correctly 33 similarly an if then else statement is actually an expression which produces a value i e the result of evaluating one of the two branches this means that such a block of code can be inserted wherever an expression is desired obviating the need for a ternary operator in scala java int hexdigit x 10 x a 10 x 0 scala val hexdigit if x 10 x a 10 else x 0 for similar reasons return statements are unnecessary in scala and in fact are discouraged as in lisp the last expression in a block of code is the value of that block of code and if the block of code is the body of a function it will be returned by the function to make it clear that all functions are expressions even methods that return unit are written with an equals sign def printvalue x string unit println i ate a s format x or equivalently with type inference and omitting the unnecessary braces def printvalue x string println i ate a s format x type inference edit due to type inference the type of variables function return values and many other expressions can typically be omitted as the compiler can deduce it examples are val x foo for an immutable constant or immutable object or var x 1 5 for a variable whose value can later be changed type inference in scala is essentially local in contrast to the more global hindley milner algorithm used in haskell ml and other more purely functional languages this is done to facilitate object oriented programming the result is that certain types still need to be declared most notably function parameters and the return types of recursive functions e g def formatapples x int i ate d apples format x or with a return type declared for a recursive function def factorial x int int if x 0 1 else x factorial x 1 anonymous functions edit in scala functions are objects and a convenient syntax exists for specifying anonymous functions an example is the expression x x 2 which specifies a function with one parameter that compares its argument to see if it is less than 2 it is equivalent to the lisp form lambda x x 2 note that neither the type of x nor the return type need be explicitly specified and can generally be inferred by type inference but they can be explicitly specified e g as x int x 2 or even x int x 2 boolean anonymous functions behave as true closures in that they automatically capture any variables that are lexically available in the environment of the enclosing function those variables will be available even after the enclosing function returns and unlike in the case of java s anonymous inner classes do not need to be declared as final it is even possible to modify such variables if they are mutable and the modified value will be available the next time the anonymous function is called an even shorter form of anonymous function uses placeholder variables for example the following list map x sqrt x can be written more concisely as list map sqrt _ or even list map sqrt immutability edit scala enforces a distinction between immutable and mutable variables mutable variables are declared using the var keyword and immutable values are declared using the val keyword a variable declared using the val keyword cannot be reassigned in the same way that a variable declared using the final keyword can t be reassigned in java val s are only shallowly immutable that is an object referenced by a val is not guaranteed to itself be immutable immutable classes are encouraged by convention however and the scala standard library provides a rich set of immutable collection classes scala provides mutable and immutable variants of most collection classes and the immutable version is always used unless the mutable version is explicitly imported 34 the immutable variants are persistent data structures that always return an updated copy of an old object instead of updating the old object destructively in place an example of this is immutable linked lists where prepending an element to a list is done by returning a new list node consisting of the element and a reference to the list tail appending an element to a list can only be done by prepending all elements in the old list to a new list with only the new element in the same way inserting an element in the middle of a list will copy the first half of the list but keep a reference to the second half of the list this is called structural sharing this ...
Thumbnail images (randomly selected): * Images may be subject to copyright.GREEN status (no comments)
  • loading
  • \displaystyle n^ 2/3 +\l...

Verified site has: 577 subpage(s). Do you want to verify them? Verify pages:

1-5 6-10 11-15 16-20 21-25 26-30 31-35 36-40 41-45 46-50
51-55 56-60 61-65 66-70 71-75 76-80 81-85 86-90 91-95 96-100
101-105 106-110 111-115 116-120 121-125 126-130 131-135 136-140 141-145 146-150
151-155 156-160 161-165 166-170 171-175 176-180 181-185 186-190 191-195 196-200
201-205 206-210 211-215 216-220 221-225 226-230 231-235 236-240 241-245 246-250
251-255 256-260 261-265 266-270 271-275 276-280 281-285 286-290 291-295 296-300
301-305 306-310 311-315 316-320 321-325 326-330 331-335 336-340 341-345 346-350
351-355 356-360 361-365 366-370 371-375 376-380 381-385 386-390 391-395 396-400
401-405 406-410 411-415 416-420 421-425 426-430 431-435 436-440 441-445 446-450
451-455 456-460 461-465 466-470 471-475 476-480 481-485 486-490 491-495 496-500
501-505 506-510 511-515 516-520 521-525 526-530 531-535 536-540 541-545 546-550
551-555 556-560 561-565 566-570 571-575 576-577


The site also has references to the 2 subdomain(s)

  archive.org  Verify   help.archive.org  Verify


Top 50 hastags from of all verified websites.

Supplementary Information (add-on for SEO geeks)*- See more on header.verify-www.com

Header

HTTP/1.1 302 FOUND
Server nginx
Date Mon, 05 Oct 2026 08:05:41 GMT
Content-Type text/plain; charset=utf-8
Content-Length 0
Connection close
x-archive-redirect-reason found capture at 20221217042112
location htt???/web.archive.org/web/20221217042112/htt????/en.wikipedia.org/wiki/Scala_%28programming_language%29
server-timing captures_list;dur=0.624135, exclusion.robots;dur=0.053073, exclusion.robots.policy;dur=0.040854, esindex;dur=0.010806, cdx.remote;dur=5.607705, LoadShardBlock;dur=94.161765, PetaboxLoader3.datanode;dur=89.671723
x-app-server wwwb-app249-dc8
x-ts 302
x-tr 148
server-timing TR;dur=0,Tw;dur=0,Tc;dur=1
set-cookie wb-p-SERVER=wwwb-app249; path=/
X-location All
X-AS 16276
X-RL 0
X-NA 0
X-Page-Cache MISS
Server-Timing MISS
X-NID OVH SAS
Referrer-Policy no-referrer-when-downgrade
Permissions-Policy interest-cohort=()
X-sd 0
HTTP/1.1 200 OK
Server nginx
Date Mon, 05 Oct 2026 08:05:42 GMT
Content-Type text/html; charset=UTF-8
Transfer-Encoding chunked
Connection close
x-archive-orig-date Fri, 16 Dec 2022 15:55:05 GMT
x-archive-orig-server mw2392.codfw.wmnet
x-archive-orig-x-content-type-options nosniff
x-archive-orig-content-language en
x-archive-orig-vary Accept-Encoding,Cookie,Authorization
x-archive-orig-last-modified Fri, 16 Dec 2022 15:19:24 GMT
x-archive-orig-age 44767
x-archive-orig-x-cache cp2035 hit, cp2029 hit/3
x-archive-orig-x-cache-status hit-front
x-archive-orig-server-timing cache;desc= hit-front , host;desc= cp2029
x-archive-orig-strict-transport-security max-age=106384710; includeSubDomains; preload
x-archive-orig-report-to group : wm_nel , max_age : 86400, endpoints : [ url : htt????/intake-logging.wikimedia.org/v1/events?stream=w3c.reportingapi.network_error&schema_uri=/w3c/reportingapi/network_error/1.0.0 ]
x-archive-orig-nel report_to : wm_nel , max_age : 86400, failure_fraction : 0.05, success_fraction : 0.0
x-archive-orig-set-cookie WMF-Last-Access=17-Dec-2022;Path=/;HttpOnly;secure;Expires=Wed, 18 Jan 2023 00:00:00 GMT
x-archive-orig-set-cookie WMF-Last-Access-Global=17-Dec-2022;Path=/;Domain=.wikipedia.org;HttpOnly;secure;Expires=Wed, 18 Jan 2023 00:00:00 GMT
x-archive-orig-accept-ch Sec-CH-UA-Arch,Sec-CH-UA-Bitness,Sec-CH-UA-Full-Version-List,Sec-CH-UA-Model,Sec-CH-UA-Platform-Version
x-archive-orig-permissions-policy interest-cohort=(),ch-ua-arch=(self intake-analytics.wikimedia.org ),ch-ua-bitness=(self intake-analytics.wikimedia.org ),ch-ua-full-version-list=(self intake-analytics.wikimedia.org ),ch-ua-model=(self intake-analytics.wikimedia.org ),ch-ua-platform-version=(self intake-analytics.wikimedia.org )
x-archive-orig-x-client-ip 207.241.225.127
x-archive-orig-cache-control private, s-maxage=0, max-age=0, must-revalidate
x-archive-orig-set-cookie GeoIP=US:NM:Albuquerque:35.20:-106.64:v4; Path=/; secure; Domain=.wikipedia.org
x-archive-orig-accept-ranges bytes
x-archive-orig-content-length 71352
x-archive-guessed-content-type text/html
x-archive-guessed-charset utf-8
x-archive-orig-content-encoding gzip
memento-datetime Sat, 17 Dec 2022 04:21:12 GMT
link <htt????/en.wikipedia.org/wiki/Scala_%2528programming_language%2529>; rel= original , <htt???/web.archive.org/web/timemap/link/htt????/en.wikipedia.org/wiki/Scala_%2528programming_language%2529>; rel= timemap ; type= application/link-format , <htt???/web.archive.org/web/htt????/en.wikipedia.org/wiki/Scala_%2528programming_language%2529>; rel= timegate , <htt???/web.archive.org/web/20051215000000/htt???/en.wikipedia.org/wiki/Scala_(programming_language)>; rel= first memento ; datetime= Thu, 15 Dec 2005 00:00:00 GMT , <htt???/web.archive.org/web/20221130122729/htt????/en.wikipedia.org/wiki/Scala_%2528programming_language%2529>; rel= prev memento ; datetime= Wed, 30 Nov 2022 12:27:29 GMT , <htt???/web.archive.org/web/20221217042112/htt????/en.wikipedia.org/wiki/Scala_%2528programming_language%2529>; rel= memento ; datetime= Sat, 17 Dec 2022 04:21:12 GMT , <htt???/web.archive.org/web/20221221000215/htt???/en.wikipedia.org/wiki/Scala_%2528programming_language%2529>; rel= next memento ; datetime= Wed, 21 Dec 2022 00:02:15 GMT , <htt???/web.archive.org/web/20261004054851/htt????/en.wikipedia.org/wiki/Scala_(programming_language)>; rel= last memento ; datetime= Sun, 04 Oct 2026 05:48:51 GMT
content-security-policy default-src self unsafe-eval unsafe-inline data: blob: archive.org web.archive.org web-static.archive.org wayback-api.archive.org athena.archive.org analytics.archive.org pragma.archivelab.org wwwb-events.archive.org
x-archive-src spn2-20221217042851/spn2-20221217034510-wwwb-spn17.us.archive.org-8001.warc.gz
server-timing captures_list;dur=0.372137, exclusion.robots;dur=0.032400, exclusion.robots.policy;dur=0.024641, esindex;dur=0.007998, cdx.remote;dur=8.186427, LoadShardBlock;dur=134.812517, PetaboxLoader3.resolve;dur=72.519512, PetaboxLoader3.datanode;dur=114.371652, load_resource;dur=86.086973, nav;dur=0.133962
x-app-server wwwb-app206-dc6
x-ts 200
x-tr 481
server-timing TR;dur=0,Tw;dur=0,Tc;dur=0
set-cookie wb-p-SERVER=wwwb-app206; path=/
X-location All
X-AS 16276
X-RL 0
X-NA 0
X-Page-Cache MISS
Server-Timing MISS
X-NID OVH SAS
Referrer-Policy no-referrer-when-downgrade
Permissions-Policy interest-cohort=()
X-sd 0
Content-Encoding gzip

Meta Tags

title="Scala (programming language) - Wikipedia"
charset="UTF-8"
name="ResourceLoaderDynamicStyles" content=""
name="generator" content="MediaWiki 1.40.0-wmf.14"
name="referrer" content="origin"
name="referrer" content="origin-when-crossorigin"
name="referrer" content="origin-when-cross-origin"
name="robots" content="max-image-preview:standard"
name="format-detection" content="telephone=no"
property="og:image" content="htt???/web.archive.org/web/20221217042112im_/htt????/upload.wikimedia.org/wikipedia/commons/thumb/3/39/Scala-full-color.svg/1200px-Scala-full-color.svg.png"
property="og:image:width" content="1200"
property="og:image:height" content="548"
property="og:image" content="htt???/web.archive.org/web/20221217042112im_/htt????/upload.wikimedia.org/wikipedia/commons/thumb/3/39/Scala-full-color.svg/800px-Scala-full-color.svg.png"
property="og:image:width" content="800"
property="og:image:height" content="366"
property="og:image" content="htt???/web.archive.org/web/20221217042112im_/htt????/upload.wikimedia.org/wikipedia/commons/thumb/3/39/Scala-full-color.svg/640px-Scala-full-color.svg.png"
property="og:image:width" content="640"
property="og:image:height" content="293"
name="viewport" content="width=1000"
property="og:title" content="Scala (programming language) - Wikipedia"
property="og:type" content="website"

Load Info

page size90696
load time (s)1.53077
redirect count1
speed download59278
server IP 207.241.237.3
* all occurrences of the string "http://" have been changed to "htt???/"