-
Background: I've been writing mostly Scala for the last few years, mostly in FP style. I also have experience writing Java, Ruby, Python, bash and a few other languages.
-
Caveat: anything below which sounds like a grumble about the language is probably due to ignorance on my part. Please advise/correct me in the comments.
-
For a more eloquent writeup of a similar topic by somebody who can actually write Rust, see Lloyd's excellent blogpost
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* By default Joda will parse an ISO 8601 string into a DateTime | |
* with its timezone set to the _local_ timezone, not the one specified in the ISO string. | |
* You can fix this by calling `withOffsetParsed()` on your formatter. | |
*/ | |
scala> import org.joda.time.format._ | |
import org.joda.time.format._ | |
scala> new DateTime("2016-04-06T15:22:01Z") |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import scala.meta._ | |
import java.nio.file._ | |
object CommentWordCount extends App { | |
val scalaDir = "/Users/chris/code/scala" | |
val stdlibSrcDir = s"$scalaDir/src/library/scala" | |
val scalaFileContents: Array[String] = Files.walk(Paths.get(stdlibSrcDir)).toArray.collect { | |
case p: Path if p.toString.endsWith(".scala") => new String(Files.readAllBytes(p), "UTF-8") |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
the: 458186 | |
to: 222092 | |
of: 201833 | |
and: 184094 | |
a: 175172 | |
in: 158131 | |
was: 83367 | |
that: 82857 | |
for: 73595 | |
on: 71485 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ ss -s | |
Total: 185 (kernel 0) | |
TCP: 43 (estab 28, closed 7, orphaned 0, synrecv 0, timewait 6/0), ports 0 | |
Transport Total IP IPv6 | |
* 0 - - | |
RAW 0 0 0 | |
UDP 14 8 6 | |
TCP 36 3 33 | |
INET 50 11 39 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ curl 'https://content.guardianapis.com/search?tag=us-news/donaldtrump&q=%22reality%20tv%20star%22&page-size=200&from-date=2015-06-01&api-key=<api-key>' | \ | |
jq -r '.response.results[].webPublicationDate' | \ | |
cut -c1-7 | \ | |
sort | \ | |
uniq -c | \ | |
gnuplot -e 'set terminal png; set output "test.png"; set xdata time; set timefmt "%Y-%m"; set xrange ["2015-06":"2016-08"]; set format x "%m/%Y"; plot "<cat" using 2:1 with lines title "Reality TV star"' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import scala.reflect.macros.blackbox | |
object PrettyPrinting { | |
/* | |
* Print a raw AST, nicely indented. | |
* Pretty fragile, e.g. will get confused by string literals containing commas or parentheses. | |
*/ | |
def prettyTree(raw: String): String = { | |
var level = 0 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Welcome to the Ammonite Repl 0.8.0 | |
(Scala 2.11.8 Java 1.8.0_91) | |
@ import scala.util.Try | |
import scala.util.Try | |
@ val listOfTries: List[Try[String]] = List(Try("a"), Try("b"), Try("c")) | |
listOfTries: List[Try[String]] = List(Success("a"), Success("b"), Success("c")) | |
// I have a List[Try[String]] but I actually want a Try[List[String]]. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Welcome to the Ammonite Repl 0.8.2 | |
(Scala 2.12.1 Java 1.8.0_121) | |
@ import $ivy.`org.typelevel::cats:0.9.0`, cats._, cats.implicits._ | |
import $ivy.$ , cats._, cats.implicits._ | |
@ | |
@ trait Maths[F[_]] { | |
def int(i: Int): F[Int] | |
def add(l: F[Int], r: F[Int]): F[Int] | |
} | |
defined trait Maths |
I hereby claim:
- I am cb372 on github.
- I am cb372 (https://keybase.io/cb372) on keybase.
- I have a public key ASCYMnGniI49GycDeF7wL-osskKrzmEbfoRW25L5Xe1H_wo
To claim this, I am signing this object: