Skip to content

Instantly share code, notes, and snippets.

View takeshik's full-sized avatar

Takeshi KIRIYA takeshik

View GitHub Profile
@takeshik
takeshik / quote-syntaxes.patch
Created April 22, 2012 03:18
support #' (quote), #` (quasiquote), #, (unquote) and #,@ (unquote-splicing) syntaxes
diff --git a/Yacq/LanguageServices/Reader.Defaults.cs b/Yacq/LanguageServices/Reader.Defaults.cs
index 594cd20..98ca331 100644
--- a/Yacq/LanguageServices/Reader.Defaults.cs
+++ b/Yacq/LanguageServices/Reader.Defaults.cs
@@ -222,9 +222,9 @@ namespace XSpect.Yacq.LanguageServices
var text =
Span(
from x in Chars.OneOf('\'', '\"', '`')
- let quote = x.Satisfy()
- from y in quote.Not().Right(Chars.Any()).Many().Select(_ => new String(_.ToArray()))
(load "cts:Inscribe.Storage")
(load "cts:Inscribe.Communication.Posting")
AccountStorage.Accounts.(ForEach (\ [a]
PostOffice.(UpdateTweet a "くるるたんの腎臓ペロペローーー!!!!!!")
PostOffice.(UpdateTweet a "くるるたんくるるたんくるるたんくるるたんくるるたんくるるたんくるるたんくるるたんくるるたんくるるたんくるるたんくるるたん")
PostOffice.(UpdateTweet a "ピャァァァァァァァァァァwwwwwwくるるたん腹パン腹パン!!!!")
PostOffice.(UpdateTweet a "くるるたんの脳みそ汁飲みたいです^^")
))
@takeshik
takeshik / conv.cs
Created February 2, 2012 22:24
Numeric Conversions
internal static Type ConvertNumericType(Type expressionType, Type expectedType)
{
var expectedType_ = Type.GetTypeCode(Nullable.GetUnderlyingType(expectedType) ?? expectedType);
switch (Type.GetTypeCode(Nullable.GetUnderlyingType(expressionType) ?? expressionType))
{
case TypeCode.Char:
switch (expectedType_)
{
case TypeCode.Char:
case TypeCode.UInt16:
Enumerable.Range(0, 10)
.Concat(EnumerableEx.Throw<int>(new DivideByZeroException()))
.ForEach(Console.WriteLine);
Enumerable.Range(0, 10)
.Concat(EnumerableEx.Throw<int>(new DivideByZeroException()))
.Catch((DivideByZeroException ex) => EnumerableEx.Return(-1))
.ForEach(Console.WriteLine);
<?xml version="1.0"?>
<ColoringProperty xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<MyColor A="255" R="160" G="214" B="255" IsActive="true" />
<FriendColor A="255" R="255" G="255" B="255" IsActive="true" />
<FollowingColor A="255" R="255" G="192" B="192" IsActive="true" />
<FollowerColor A="255" R="192" G="255" B="192" IsActive="true" />
<DirectMessageNameColor A="255" R="255" G="128" B="128" IsActive="true" />
<DefaultNameColor A="0" R="255" G="255" B="255" />
<RetweetedColor>
<LightColor A="255" R="214" G="255" B="214" IsActive="true" />
@takeshik
takeshik / 00_yacq-class.yacq
Created December 22, 2011 19:30
Dynamic Type Generating with Yacq
(newtype MyType:[Object (type "System.IDisposable")]
(public member X:Int32 get set)
(public member Y:Int32 get set)
(public member Z:Int32 get set)
(public member Sum:Int32 get (\ [self]
(+ self.X self.Y self.Z)
))
(public method new [] (\ [self]
// Before:
YacqExpression.Dispatch(
DispatchTypes.Method,
YacqExpression.Dispatch(
DispatchTypes.Method,
YacqExpression.TypeCandidate(typeof(Enumerable)),
"Range",
Expression.Constant(0), Expression.Constant(10)
),
"Reverse"
Expression<Func<IEnumerable<int>, IEnumerable<int>>> expr
= _ => _.Select(e => e + 1).Where(e => e > 10).OrderByDescending(e => e).Reverse();
EnumerableEx.Generate(
expr.Body,
e => e is MethodCallExpression,
e => ((MethodCallExpression) e).Arguments[0],
e => ((MethodCallExpression) e).Method
).Reverse();
@takeshik
takeshik / brainyacq.yacq
Created December 9, 2011 16:49
Brainf*ck on Yacq
(def bf (\ [c:String] ($ [
d Int32.array.(new 30000) ; data array
di 0 ; data index
ci 0 ; code index
s Stack.[Int32].(new) ; jump stack
jc 0 ; jump counter
]
EnumerableEx.(Repeat c)
.(TakeWhile {!= ci $0.Length})
.(ForEach {$
void Main()
{
var code =
@"(<html>
(<head>
(<title> 'Yacq-XML')
)
(<body>
(<h1> 'Hello, YACQ World!')
(<p> 'Now: \$(DateTime.Now).')