+
1
|
skin
|
login
|
edit
workshop
::
about
user:anonymous
{img {@ src="data/canopee.jpg" width="100%" title="Canopée"}} _h1 overview {blockquote _p [...] I like it when I find this simple yet powerful ideas implemented, these are the things that when you see them you think, Why didn't I think of that? [...] ([[comments]]) } _p Welcome in the {b lambdaway} project. You are in a workshop - a wiki called {b lambdatatank} - built as a thin overlay on top of any modern web browser, and devoted to writing, composing and coding on the web, where the markup, styling and scripting are unified in a single language, {b lambdatalk}. _p Using this small dialect of Lisp: _h6 1) you can say {note_start hello "hello world"} without any quotes, {note_end {@ id="hello"} {show {@ src="http://epsilonwiki.free.fr/alphawiki_2/data/helloworld.jpg" height="170" width="1000" title="Hello World as usual. No strings, just plain text :) :)"}} _p Yes, "Hello World" as usual but {b without any quotes}, just plain text, we are in a wiki context! } _h6 2) you can use {b lambdaway} as a powerful and ubiquitous {note_start notebook web notebook}, {note_end {@ id="notebook"} {div {@ style="font-size:1em; box-shadow:0 0 8px black; padding:10px; background:#ffe; width:100%;"} {editable 1 _h1 quick _p You are short in time? This is a mini page for you, using a minimal syntax. Click on "edit" to analyze the code. Feel free to copy/paste it from this page to the page [[sandbox]] and play with it. Just now, see how it is easy to write titles, paragraphs, lists, links, formulas and insert some picture: _ul a {b bold and {u underlined text}} _ul a link to the page [[forum]] _ul a link to the [[PIXAR|http://www.pixar.com/]] website _ul math expressions : _ul30 '{+ 1 {* 2 3} 4} = {+ 1 {* 2 3} 4}, _ul30 '{sqrt 2} = {sqrt 2}, _ul30 Φ = '{/ {+ 1 {sqrt 5}} 2} = {/ {+ 1 {sqrt 5}} 2} _ul30 ... _ul a picture : {show {@ src="data/free_horses.jpg" height="295" width="900" title="Free horses." }} _p With such a small handle of tools, people without no interest in a complex wiki syntax - maybe you - can quickly create some wiki pages and share reflexions, informations and knowledge. Later, smart web designers will bring their own tools to enrich them, give them a better structure and a better visual aspect. And a coder will gently add some new functionalities to make code easier to write and read. _p Both sharing their competences in a collaborative work from anywhere on the net! }}} _h6 3) you can easily {note_start extend extend the language} for your mom, {note_end {@ id="extend"} {pre '{def cute_add {lambda {:a :b} Yes mom, :a+:b is equal to {+ :a :b}! }} -> {def cute_add {lambda {:a :b} Yes mom, :a+:b is equal to {+ :a :b}! }} '{cute_add 3 4} -> {cute_add 3 4} } _p Note the coherent and easy way to intermix strings and numbers to be compared with the equivalent Javascript code struggling with quotes, spaces and operators: {pre var cute_add = function (a,b) '{ return "Yes mom, " + a + "+" + b + " is equal to " + (a+b) + "!" } cute_add(3,4) -> {cute_add 3 4} } _p More later. } _h6 4) yes, you can even {note_start compute compute n!} and the Euler's number, {note_end {@ id="compute"} {pre '{def ! {lambda {:a :b} {if {< :b 2} then :a else {! {* :a :b} {- :b 1}}}}} -> {def ! {lambda {:a :b} {if {< :b 2} then :a else {! {* :a :b} {- :b 1}}}}} '{! 1 6} -> {! 1 6} } _p What for? Well, you could compute the famous Euler's number E = Σ{sub i=0}{sup ∞}({sup 1}/{sub i!}): {pre '{def euler {lambda {:n} {+ {map {lambda {:n} {/ 1 {! 1 :n}}} {serie 0 :n}}}}} -> {def euler {lambda {:n} {+ {map {lambda {:n} {/ 1 {! 1 :n}}} {serie 0 :n}}}}} '{euler 17} -> {euler 17} } } _h6 5) you can write {note_start maths beautiful math expressions} as simple text, {note_end {@ id="maths"} {div {@ style="font:italic 1.2em georgia; text-align:center;"} i{del h}{quotient 30 ∂ψ ∂t}(x,t) = {paren 3 (}mc{sup 2}α{sub 0} - i{del h}c {sigma 30 j=1 3} α{sub j}{quotient 30 ∂ ∂x{sub j}}{paren 3 )} ψ(x,t) {div {@ style="display:none"} {def quotient {lambda {:s :num :denom} {table {@ style="width::spx; display:inline-block; vertical-align:middle; text-align:center;"} {tr {td {@ style="border:0 solid; border-bottom:1px solid;"}:num}} {tr {td {@ style="border:0 solid;"}:denom}} }}} {def sigma {lambda {:s :one :two} {table {@ style="width::spx; display:inline-block; vertical-align:middle; text-align:center;"} {tr {td {@ style="border:0 solid;"}:two}} {tr {td {@ style="border:0 solid; font-size:2em; line-height:0.7em;"}Σ}} {tr {td {@ style="border:0 solid;"}:one}} }}} {def paren {lambda {:s :p} {span {@ style="font:normal :sem arial; vertical-align:-0.15em;"}:p}}} }} _p No, it's not a picture! } _h6 6) you can play with {note_start curves fancy curves} in the wiki page, {note_end {@ id="curves"} {pre {@ style="display:none"} {def bez_cubic {def bc.interp {lambda {:a0 :a1 :a2 :a3 :t :u} {round {+ {* :a0 :u :u :u 1} {* :a1 :u :u :t 3} {* :a2 :u :t :t 3} {* :a3 :t :t :t 1}}}}} {lambda {:p0 :p1 :p2 :p3 :t} {bc.interp {nth 0 {:p0}} {nth 0 {:p1}} {nth 0 {:p2}} {nth 0 {:p3}} :t {- 1 :t}} {bc.interp {nth 1 {:p0}} {nth 1 {:p1}} {nth 1 {:p2}} {nth 1 {:p3}} :t {- 1 :t}} }} {def dot {lambda {:x :y :r :bord :back} {span {@ style="position:absolute; left:{- :x {/ :r 2}}px; top:{- :y {/ :r 2}}px; width::rpx; height::rpx; border-radius::rpx; border:1px solid :bord; background::back;"}}}} } {div {@ style="position:relative; top:0; left:0; background:#ffe; border:1px solid black; height:300px; box-shadow:0 0 8px;"} {dot {{def Q0 200 30}} 20 black cyan} {dot {{def Q1 500 30}} 20 black cyan} {dot {{def Q2 30 200}} 20 black cyan} {dot {{def Q3 350 270}} 20 black cyan} {map {lambda {:t} {dot {bez_cubic Q0 Q1 Q2 Q3 :t} 5 black red}} {serie -0.3 1.3 0.02}} {map {lambda {:t} {dot {bez_cubic Q0 Q2 Q3 Q1 :t} 5 black blue}} {serie 0.2 0.8 0.02}} } _p and also with [[splines|?view=decasteljau]], [[3D shapes|?view=pforms]], [[Ray Tracing|?view=raytracing]], [[fractals|?view=mandel]], [[logo|?view=turtle]], ... } _h6 7) you can play with lambdatalk in an integrated experimental [[spreadsheet]], _h6 8) and you can do much more discovering this workshop. _p This workshop is created and maintained using {b lambdatalk} at the top level and {b Javascript} at the machine|browser level, for instance in intensive computing. Do note that {b it's still a workshop}, changing anytime, and please, tell me something in [[forum]] or via [{mailto marty•alain_at_free•fr}]. {div {@ style="font:normal 1.5em courier new; color:red; text-align:center; margin:10px;"} °° /\{([^\s{}]*)(?:[\s]*)([^{}]*)\}/g °°} {{hide} {def bc {lambda {:col} span {@ style="color::col"}}} }