Skip to content

Instantly share code, notes, and snippets.

View astrieanna's full-sized avatar
working from home

Leah Hanson astrieanna

working from home
View GitHub Profile
astrieanna /
Created December 22, 2021 18:32
A series of exercises to develop an intuition for how scoping works in Python

Based on this version in Clojure

Lexical Scope in Python

Lexical scope guarantees that the reference to a value will be "enclosed" in the scope in which it is being used.

Lexical scoping simplifies our life because it allows us to mechanically follow code and determine where a value originated.

  • Start at the place of reference of the value
  • Then "walk" backwards and outwards to find where the value was defined
  • Now you know where the value came from
This file has been truncated, but you can view the full file.
[Envoy (Epoch 0)] [2020-06-18 22:07:26.052][23][debug][upstream] [external/envoy/source/common/upstream/] no healthy host for HTTP connection pool
[Envoy (Epoch 0)] [2020-06-18 22:07:26.076][6][debug][config] [external/envoy/source/common/config/] gRPC config for accepted with 1 resources with version 1592518045
[Envoy (Epoch 0)] [2020-06-18 22:07:26.076][6][trace][config] [external/envoy/source/common/config/] Sending DiscoveryRequest for version_info: "1592518045"
[Envoy (Epoch 0)] [2020-06-18 22:07:26.171][17][debug][upstream] [external/envoy/source/common/upstream/] no healthy host for HTTP connection pool
[Envoy (Epoch 0)] [2020-06-18 22:07:26.290][23][debug][upstream] [external/envoy/source/common/upstream/] no healthy host for HTTP connection pool
[Envoy (Epoch 0)] [2020
<script src=""></script>
<div id="container">
<!-- This element's contents will be replaced with your component. -->
astrieanna / draft.asciidoc
Created April 6, 2015 20:56
NetCDF section for Learning Julia (with full script); not planning to include in book

Writing a Parser

Our goal for this section is to parse a NetCDF file. NetCDF is a binary format, which is most often used for climatology/geoscience data. Because it is a custom binary format, we’re going to write a custom parser for it by hand.


If you have a format based on JSON or XML to parse, then you should start with JSON.jl or julia-xml-library, rather than writing it by hand.

astrieanna / CodeTypeSample.ipynb
Created March 13, 2015 01:41
Using the output of code_typed
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
astrieanna / mlemming.elm
Last active August 29, 2015 14:07
Mario has visible platforms (multiple!) that he runs into, sorta. He also walks like a lemming.
import Keyboard
import Window
type Lemming = {x:Int, y:Int, vx:Float, vy:Float, dir:String, onSurface:Bool}
mario1 = { x=20, y=900, vx=0, vy=0, dir="right", onSurface=False }
mario2 = { x=60, y=900, vx=0, vy=0, dir="right", onSurface=False }
allMarios = [mario1, mario2]
astrieanna / cube.elm
Created September 21, 2014 23:44
modified version of left-right movement of mouse controls cube rotation
import Math.Vector3 (..)
import Math.Matrix4 (..)
import Graphics.WebGL (..)
import Mouse
-- Create a cube in which each vertex has a position and color
type Vertex = { color:Vec3, position:Vec3 }
astrieanna / squares.elm
Created September 21, 2014 20:22
modified version of (the red square follows the mouse)
import Mouse
# Separating main and squares was key to making lift work
# I don't know how to convert Signal (Int,Int) to Signal (Float,Float)
# so I separated x and y into different arguments
main = lift2 squares (toFloat <~ Mouse.x)
(toFloat <~ Mouse.y)
squares : Float -> Float -> Element
squares x y =
astrieanna / test.jl
Created December 7, 2013 16:57
Trying to make `methodswith` work for a user-defined type.
module Test
export TwoVals, addtwovals
type TwoVals
function addtwovals(v::TwoVals)
v.val1 + v.val2
astrieanna / chart.jl
Last active December 22, 2015 00:49
Making Vega.jl plot
#Pkg.add for JSON
#Pkg.clone for Vega.jl, JSTypes
xs = open("xs.txt","r")
ys = open("ys.txt","r")
xarr = readdlm(xs)
yarr = readdlm(ys)
x2 = Float64[x for x in xarr]
y2 = Float64[y for y in yarr]