fpinscala

Code, exercises, answers, and hints to go along with the book "Functional Programming in Scala"

  • 所有者: fpinscala/fpinscala
  • 平台:
  • 许可证: MIT License
  • 分类:
  • 主题:
  • 喜欢:
    0
      比较:

Github星跟踪图

Build status Join the chat at https://gitter.im/fpinscala/fpinscala

This repository contains exercises, hints, and answers for the book
Functional Programming in Scala. Along
with the book itself, it's the closest you'll get to having your own
private functional programming tutor without actually having one.

Here's how to use this repository:

Each chapter in the book develops a fully working library of functions
and data types, built up through a series of exercises and example code
given in the book text. The shell of this working library and exercise
stubs live in
exercises/src/main/scala/fpinscala/<chapter-description>, where
<chapter-description> is a package name that corresponds to the
chapter title (see below). When you begin working on a chapter, we
recommend you open the exercise file(s) for that chapter, and when you
encounter exercises, implement them in the exercises file and make sure
they work.

If you get stuck on an exercise, let's say exercise 4 in the chapter,
you can find hints in answerkey/<chapter-description>/04.hint.txt (if
no hints are available for a problem, the file will just have a single
'-' as its contents) and the answer along with an explanation of the
answer and any variations in
answerkey/<chapter-description>/04.answer.scala or
04.answer.markdown. The finished Scala modules, with all answers for
each chapter live in
answers/src/main/scala/fpinscala/<chapter-description>. Please feel
free to submit pull requests for alternate answers, improved hints, and
so on, so we can make this repo the very best resource for people
working through the book.

Chapter descriptions:

  • Chapter 2: gettingstarted
  • Chapter 3: datastructures
  • Chapter 4: errorhandling
  • Chapter 5: laziness
  • Chapter 6: state
  • Chapter 7: parallelism
  • Chapter 8: testing
  • Chapter 9: parsing
  • Chapter 10: monoids
  • Chapter 11: monads
  • Chapter 12: applicative
  • Chapter 13: iomonad
  • Chapter 14: localeffects
  • Chapter 15: streamingio

To build the code for the first time, if on windows:

$ .\sbt.cmd

If on mac/linux, first make sure you have not checked out the code onto
an encrypted file system, otherwise you will get compile errors
regarding too long file names (one solution is to put the fpinscala repo
on a unencrypted usb key, and symlink it into your preferred code
location).

$ chmod a+x ./sbt
$ ./sbt

This will download and launch sbt, a build tool
for Scala. Once it is finished downloading, you'll get a prompt from
which you can issue commands to build and interact with your code. Try
the following:

> project exercises
> compile

This switches to the exercises project, where your code lives, and
compiles the code. You can also do:

> console

to get a Scala REPL with access to your exercises, and

> run

To get a menu of possible main methods to execute.

To create project files for the eclipse IDE you can install the
sbteclipse
sbt plugin. This makes a new command available
in sbt:

> eclipse

All code in this repository is
MIT-licensed. See the
LICENSE file for details.

Have fun, and good luck! Also be sure to check out the community
wiki
for the chapter
notes
, links to more reading, and more.

Paul and Rúnar

概览

名称与所有者fpinscala/fpinscala
主编程语言Scala
编程语言Scala (语言数: 1)
平台
许可证MIT License
发布数0
创建于2012-02-23 15:26:37
推送于2024-02-23 14:14:05
最后一次提交
星数5.7k
关注者数315
派生数3k
提交数579
已启用问题?
问题数414
打开的问题数79
拉请求数108
打开的拉请求数55
关闭的拉请求数115
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?
去到顶部