MARK P. JONES
Pacific Software Research Center
Department of Computer Science and Engineering
Oregon Graduate Institute of Science and Technology
var MyOption, Option; | |
Array.prototype.filter = function(f) { | |
var x, _i, _len, _results; | |
_results = []; | |
for (_i = 0, _len = this.length; _i < _len; _i++) { | |
x = this[_i]; | |
if (f(x)) { | |
_results.push(x); | |
} |
import java.io._ | |
@SerialVersionUID(15L) | |
class Animal(name: String, age: Int) extends Serializable { | |
override def toString = s"Animal($name, $age)" | |
} | |
case class Person(name: String) | |
// or fork := true in sbt |
def write(path: String, txt: String): Unit = { | |
import java.nio.file.{Paths, Files} | |
import java.nio.charset.StandardCharsets | |
Files.write(Paths.get(path), txt.getBytes(StandardCharsets.UTF_8)) | |
} | |
def read(path: String): String = | |
scala.io.Source.fromFile(path, "UTF-8").getLines.mkString |
/** | |
* Converts a SASS map of css property names and values into CSS output. | |
* Properties named `description` will have their value inserted as comments. | |
* | |
* Nested maps will be processed recursively. | |
* | |
* @param {map} $map the map of properties to output | |
*/ | |
@mixin map-to-props($map){ | |
@if type-of($map) == map { |
Note for newcomers: | |
In the shortcuts below, "C" stands for CTRL and "A" stands for "ALT". This is a convention | |
used in the Midnight Commander documentation and was kept here. | |
You can also use "ESC" instead of "ALT", which is useful on Macbooks. | |
Main View | |
--------------------------------------------------------------- | |
- File/directory operations |
Services declared as oneshot
are expected to take some action and exit immediatelly (thus, they are not really services,
no running processes remain). A common pattern for these type of service is to be defined by a setup and a teardown action.
Let's create a example foo
service that when started creates a file, and when stopped it deletes it.
Create executable file /opt/foo/setup-foo.sh
:
Here are 10 one-liners which show the power of scala programming, impress your friends and woo women; ok, maybe not. However, these one liners are a good set of examples using functional programming and scala syntax you may not be familiar with. I feel there is no better way to learn than to see real examples.
Updated: June 17, 2011 - I'm amazed at the popularity of this post, glad everyone enjoyed it and to see it duplicated across so many languages. I've included some of the suggestions to shorten up some of my scala examples. Some I intentionally left longer as a way for explaining / understanding what the functions were doing, not necessarily to produce the shortest possible code; so I'll include both.
The map
function takes each element in the list and applies it to the corresponding function. In this example, we take each element and multiply it by 2. This will return a list of equivalent size, compare to o
An expression beginning with a left arrow (<-
) inside a do
block statement is desugared to a monadic binding. This is syntactically a superset of existing Haskell, including extensions. It admits a clean notation that subsumes existing patterns and comes with few downsides.
do
f (<- x) (<- y)
-- ===
Links on Must watch talks
A Year living Freely - Chris Myers
Programs as Values Pure Composable Database Access in Scala. In general each talk from Rob Norris is very useful for learning.