F# for Jupyter Notebooks
Clone or download
cgravill Update to F# 4.5.2 this resolves some inconsistency around opening na…
…me spaces in helper scripts.

This may be a breaking change for existing notebooks but it moves the notebooks to be consistent with normal usage of F# interactive.
Latest commit 0a4d0e5 Sep 14, 2018
Permalink
Failed to load latest commit information.
.paket Update Paket and F# Compiler Service which simplifies the dependency … Aug 14, 2018
docs Update to new style with Paket Jul 20, 2018
ipython-profile themes can be applied for jupiter; code background is always white (#180 Jul 6, 2018
kernel-spec Jupyter -> master (#99) Nov 24, 2016
nuget Initial commit Dec 3, 2013
src Update to F# 4.5.2 this resolves some inconsistency around opening na… Sep 14, 2018
tests/IfSharp.Kernel.Tests Update to F# 4.5.2 this resolves some inconsistency around opening na… Sep 14, 2018
.gitattributes Initial commit Dec 3, 2013
.gitignore https://fsprojects.github.io/Paket/faq.html#What-files-should-I-commit Jun 9, 2018
.travis.yml Add files via upload Dec 8, 2016
Dockerfile Port the C# console to F# (#178) Jul 5, 2018
FSharp_Jupyter_Notebooks.ipynb Dynamic Angara.Chart via AsyncSeq (#190) Sep 12, 2018
ISSUE_TEMPLATE.md Create ISSUE_TEMPLATE.md Apr 4, 2016
IfSharp.sln Support .NET Standard 2.0 better with a switch to .NET 4.7.1 (#183) Jul 20, 2018
LICENSE.txt Changed License to BSD Mar 14, 2016
README.md Update wget to match Jul 30, 2018
RELEASE_NOTES.md Update RELEASE_NOTES.md Nov 8, 2017
build.cmd We only have magic Paket now Jul 20, 2018
build.fsx Support .NET Standard 2.0 better with a switch to .NET 4.7.1 (#183) Jul 20, 2018
build.sh We only have magic Paket now Jul 20, 2018
ifsharpsetup.iss Jupyter -> master (#99) Nov 24, 2016
paket.dependencies Update to F# 4.5.2 this resolves some inconsistency around opening na… Sep 14, 2018
paket.lock Update to F# 4.5.2 this resolves some inconsistency around opening na… Sep 14, 2018

README.md

IfSharp, Jupyter and F# Azure Notebooks

This is the F# implementation for Jupyter. View the Feature Notebook for some of the features that are included.

You can use Jupyter F# Notebooks for free (with free server-side execution) at Azure Notebooks. If you select "Show me some samples", then there is an "Introduction to F#" which guides you through the language and its use in Jupyter.

Build status: Build status (master/Windows) Build Status (master/Travis)

Compatibility

IfSharp supports Jupyter 4.0-5.2 and works with both Python 2.X and Python 3.X

If you need IPython 1.x or 2.x support please see the archived https://github.com/fsprojects/IfSharp/tree/ipython-archive

Automatic Installation

Previous releases for the IPython notebook are here: release repository. Automatic installs for Jupyter may be provided in the future.

Running inside a Docker container

There is a Docker file for running the F# kernel v. 3.0.0-alpha in a container. Build the container with:

docker build -t ifsharp:3.0.0-alpha .

Run it with:

docker run -d -v your_local_notebooks_dir:/notebooks -p your_port:8888 ifsharp:3.0.0-alpha

The container exposes a volume called notebooks where the files get saved. On Linux, connect to the notebook on http://localhost:your_port and, on Windows, use http://your_docker_machine:your_port.

Manual Installation (Windows)

  1. Download Anaconda for Python 3.6
  2. Launch Anaconda3-4.4.0-Windows-x86_64.exe (or later exe should work, file an issue if you have issues) Click through the installation wizard, choosing the given install location. At the 'advanced installation options' screen shown below, select "Add Anaconda to my PATH environment variable". The installer warns against this step, as it can clash with previously installed software, however it's currently essential for running IfSharp. Now install.

This should also install Jupyter: you may check this by entering 'jupyter notebook' into the Anaconda console window. If Jupyter does not launch (it should launch in the browser), install using 'pip install jupyter', or by following Jupyter instructions.

Installation screenshot


  1. Download current zip release of IfSharp v3.0.0
  2. Run IfSharp.exe (IfSharp application icon).

Jupyter will start and a notebook with F# can be selected. This can be run via "jupyter notebook" in future

Troubleshooting

If the launch fails in the console window, check that the Anaconda version used is currently added to the path. If not, uninstalling Anaconda and reinstalling using instructions 1-

Manual Installation (Mac)

  1. Install Jupyter via pip or Anaconda etc.
  2. Install Mono (tested Mono 5.10.1.47)
  3. Download current IfSharp zip release v3.0.0
  4. Unzip the release then run mono ifsharp.exe

Jupyter will start and a notebook with F# can be selected. This can be run via "jupyter notebook" in future

Manual Installation (Linux)

  1. Install Jupyter via pip or Anaconda etc.
  2. Install Mono (Untested, suggest mono 5.10) and F# (tested 4.1).
  3. Download the current IfSharp zip release v3.0.0
  4. Unzip the release then run mono ifsharp.exe (this sets up the Jupyter kernel files in ~/.local/share/jupyter/kernels/ifsharp/)

Jupyter will start and a notebook with F# can be selected. This can be run via "jupyter notebook" in future

Manual Installation (Linux - HDInsights)

  1. Follow instructions to install or update Mono on HDInsights.
  2. SSH into the HDInsights cluster.
  3. Download the current Ifsharp zip release v3.0.0 with the following commands:
# create ifsharp folder under /tmp
mkdir ifsharp
cd ifsharp
wget https://github.com/fsprojects/IfSharp/releases/download/v3.0.0/IfSharp.v3.0.0.zip
unzip IfSharp.v3.0.0.zip
chmod +x ifsharp.exe
  1. From the Azure portal, open your cluster. See List and show clusters for the instructions. The cluster is opened in a new portal blade.

  2. From the Quick links section, click Cluster dashboards to open the Cluster dashboards blade. If you don't see Quick Links, click Overview from the left menu on the blade.

  3. Click Jupyter Notebook. If prompted, enter the admin credentials for the cluster.

    [!NOTE] You may also reach the Jupyter notebook on Spark cluster by opening the following URL in your browser. Replace CLUSTERNAME with the name of your cluster:

    https://CLUSTERNAME.azurehdinsight.net/jupyter

  4. Click New, and then click Terminal.

  5. In the terminal window cd into the /tmp/ifsharp/ folder and using mono, run the installer:

cd /tmp/ifsharp
mono ifsharp.exe
  1. Back on the Jupyter homepage, click New and you will now see the F# kernel installed.

Screens

Intellisense

Intellisense Example #1


Intellisense Example #2


Integrated NuGet (via Paket)

NuGet Example

Inline Error Messages

Inline Error Message