با سلام و تشکر
میشه این مثال دوم که زدین هم #c و هم #f کدهاش رو بهم توضیح بدین .ممنون میشم

//C#‎‎‎
abstract class Command
{
public virtual void Execute();
}
abstract class MarsRoverCommand : Command
{
protected MarsRover Rover { get; private set; }

public MarsRoverCommand(MarsRover rover)
{
this.Rover = rover;
}
}
class BreakCommand : MarsRoverCommand
{
public BreakCommand(MarsRover rover)
: base(rover)
{
}
public override void Execute()
{
Rover.Rotate(-5.0);
}
}
class TurnLeftCommand : MarsRoverCommand
{
public TurnLeftCommand(MarsRover rover)
: base(rover)
{
}
public override void Execute()
{
Rover.Rotate(-5.0);
}
}


//F#‎‎‎
type Command = Command of (Rover -> unit)
let BreakCommand = Command(fun rover -> rover.Accelerate(-1.0))
let TurnLeftCommand = Command(fun rover -> rover.Rotate(-5.0<degs>))