<foo id="bar"/> match { // prints "bar"
case n @ <foo/> if (n \ "@id" text) == "bar" => println("bar")
case n @ <foo/> if (n \ "@id" text) == "baz" => println("baz")
}
Scala Pages (SCP) is a lightweight web framework developed in the Scala language. It is intended for developing Scala web applications; it is released under the Apache 2 license. SCP provides an API that is familiar to Java programmers. It is built on and closely aligned to the Servlet API. It can be learned quickly by anyone familiar with Java web development. The SCP Scala web framework is build around a text-oriented template engine. Dynamic web pages are either generated from templates or from Scala code. Templates can be HTML-templates, XML-templates or any other text format, such as CSV, JSON, etc. Because SCP neither uses DOM nor SAX parsing, memory and CPU requirements are moderate. SCP makes use of XML processing instructions instead of custom tags.
pinky is a Scala REST/MVC glue web framework built on top of Guice and Guice Servlet. Pinky provides out-of-the-box support for dealing with forms, domain objects, jdbc and rss/xml/json/html content types
Squeryl
Home Learn more Scaladoc Community Follow _squeryl on TwitterTwitter
A Scala ORM and DSL for talking with Databases with minimum verbosity and maximum type safety
Write compiler validated statements.
Squeryl statements that pass compilation won’t fail at runtime. Refactor your schema as often as is required, the Scala compiler and your IDE will tell you exactly which lines of code are affected.
Never repeat yourself
The Composability of Squeryl statements allows you to define them
once and reuse them as sub queries within other statements.
Write declaratively
Write as declaratively as SQL, only with less boilerplate. SQL’s declarativeness is preserved, not encapsulated in a lower level API that requires imperative and procedural code to get things done.
Explicitly control retrieval granularity and laziness
A significant part of optimizing a database abstraction layer is to choose for every situation the right balance between fine and large grained retrieval, and the optimal mix of laziness and eagerness. Data retrieval strategies are explicit in Squeryl rather than driven by configuration like current generation Java ORMs read more
A Look at How Scala Compiles to Java Consider this contrived example, based on an example from Beginning Scala. The point of the snippet was to demonstrate the congruency between using the...
Abstract. Join patterns are an attractive declarative way to synchronize both threads and asynchronous distributed computations. We explore joins in the context of extensible pattern matching that recently appeared in languages such as F# and Scala. Our implementation supports join patterns with multiple synchronous events, and guards. Furthermore, we integrated joins into an existing actor-based concurrency framework. It enables join patterns to be used in the context of more advanced synchronization modes, such as future-type message sending and token-passing continuations.
Y. Hayduk, A. Sobe, and P. Felber. Distributed Applications and Interoperable Systems, volume 9038 of Lecture Notes in Computer Science, Springer, (2015)
M. Steindorfer, and J. Vinju. Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, page 783--800. New York, NY, USA, ACM, (2015)
S. Tasharofi, P. Dinges, and R. Johnson. ECOOP 2013 – Object-Oriented Programming, volume 7920 of Lecture Notes in Computer Science, page 302-326. Springer Berlin Heidelberg, (2013)
V. Ureche, C. Talau, and M. Odersky. Proceedings of the 2013 ACM SIGPLAN International Conference on Object Oriented Programming Systems Languages &\#38; Applications, page 73--92. ACM, (2013)
M. Latoschik, and H. Tramberend. Software Engineering and Architectures for Realtime Interactive Systems (SEARIS), 2012 5th Workshop on, page 9-17. (March 2012)
M. Latoschik, and H. Tramberend. Software Engineering and Architectures for Realtime Interactive Systems (SEARIS), 2012 5th Workshop on, page 9-17. (March 2012)