index.html
74 lines
| 1.9 KiB
| text/html
|
HtmlLexer
r4026 | <!doctype html> | |||
<html> | ||||
<head> | ||||
<meta charset="utf-8"> | ||||
<title>CodeMirror: Go mode</title> | ||||
<link rel="stylesheet" href="../../lib/codemirror.css"> | ||||
<link rel="stylesheet" href="../../theme/elegant.css"> | ||||
<script src="../../lib/codemirror.js"></script> | ||||
<script src="../../addon/edit/matchbrackets.js"></script> | ||||
<script src="go.js"></script> | ||||
<link rel="stylesheet" href="../../doc/docs.css"> | ||||
<style>.CodeMirror {border:1px solid #999; background:#ffc}</style> | ||||
</head> | ||||
<body> | ||||
<h1>CodeMirror: Go mode</h1> | ||||
<form><textarea id="code" name="code"> | ||||
// Prime Sieve in Go. | ||||
// Taken from the Go specification. | ||||
// Copyright © The Go Authors. | ||||
package main | ||||
import "fmt" | ||||
// Send the sequence 2, 3, 4, ... to channel 'ch'. | ||||
func generate(ch chan<- int) { | ||||
r4029 | for i := 2; ; i++ { | |||
ch <- i // Send 'i' to channel 'ch' | ||||
} | ||||
r4026 | } | |||
// Copy the values from channel 'src' to channel 'dst', | ||||
// removing those divisible by 'prime'. | ||||
func filter(src <-chan int, dst chan<- int, prime int) { | ||||
r4029 | for i := range src { // Loop over values received from 'src'. | |||
if i%prime != 0 { | ||||
dst <- i // Send 'i' to channel 'dst'. | ||||
} | ||||
} | ||||
r4026 | } | |||
// The prime sieve: Daisy-chain filter processes together. | ||||
func sieve() { | ||||
r4029 | ch := make(chan int) // Create a new channel. | |||
go generate(ch) // Start generate() as a subprocess. | ||||
for { | ||||
prime := <-ch | ||||
fmt.Print(prime, "\n") | ||||
ch1 := make(chan int) | ||||
go filter(ch, ch1, prime) | ||||
ch = ch1 | ||||
} | ||||
r4026 | } | |||
func main() { | ||||
r4029 | sieve() | |||
r4026 | } | |||
</textarea></form> | ||||
<script> | ||||
var editor = CodeMirror.fromTextArea(document.getElementById("code"), { | ||||
theme: "elegant", | ||||
matchBrackets: true, | ||||
indentUnit: 8, | ||||
tabSize: 8, | ||||
indentWithTabs: true, | ||||
mode: "text/x-go" | ||||
}); | ||||
</script> | ||||
<p><strong>MIME type:</strong> <code>text/x-go</code></p> | ||||
</body> | ||||
</html> | ||||